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只带一个参数,表示容器预留的大小。

  • 相关阅读:
    服务器上的vhost
    php解压缩文件方法汇总
    STM32新起航-TMP1
    实现
    如何协调项目与领导?
    《致加西亚的一封信》读后感
    致加西亚的信
    本周设计部分及作业
    对·作业提交项目作业模块需求的编写(赵刚,段超凡)
    (第三周)团队模式中对交响乐团模式的理解
  • 原文地址:https://www.cnblogs.com/fdd566/p/6598318.html
Copyright © 2011-2022 走看看