zoukankan      html  css  js  c++  java
  • resize和reserve的区别

    转自http://blog.csdn.net/jackywgw/article/details/6248342

    首先必须弄清楚两个概念:

    1.capacity

       指容器在分配新的存储空间之前能存储的元素总数。

    2. size

       指当前容器所存储的元素个数

    在弄清这两个概念以后,很容易懂resize和reserve的区别

    1).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。

    resize既分配了空间,也创建了对象。

    2).reserve只修改capacity大小,不修改size大小,resize既修改capacity大小,也修改size大小。

    #include <iostream>
    #include <vector>
    using namespace std;

    int main(int argc, char *argv[])
    {      
        vector <int> wgw;
        cout << "initilize size is: " << wgw.size() << endl;
        cout << "initilize capacity is :" << wgw.capacity() <<endl;
        wgw.reserve(100);
        cout << "wgw size is: " << wgw.size() << endl;
        cout << "wgw capacity is :" << wgw.capacity() <<endl;

        vector <int>wgw1;
        wgw1.resize(200);
        cout << "wgw1 size is :" << wgw1.size()<<endl;
        cout << "wgw1 capacity is:" << wgw1.capacity() <<endl;

        return 0;
    }

    3).两者的形参个数不一样。

       resize带两个参数,一个表示容器大小,一个表示初始值(默认为0)

       reserve只带一个参数,表示容器预留的大小。

  • 相关阅读:
    完全分布式安装HBase
    HDFS常用的文件API操作
    启动HBase后遇到的一个问题
    HBase常用的数据库API操作
    HBase数据库常用操作命令
    Hive安装
    eclipse中配置hadoop开发环境
    Hadoop小程序倒排索引
    我学习设计模式的一些所想所得
    架构之路实战项目记录(二) 忘记数据库 开始抽象
  • 原文地址:https://www.cnblogs.com/fdd566/p/6598318.html
Copyright © 2011-2022 走看看