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

  • 相关阅读:
    iOS 测试
    runtime 大牛必备
    集成微信支付
    webview的使用以及js调用OC传参
    ScrollView的坑
    iOS 字符串 数组 字典 操作!
    Git的使用场景
    什么是Runloop?
    Cannot subclass final class class com.sun.proxy.$Proxy16
    <%@page include%>、<%@include%>、<jsp:include>三者之间的本质区别
  • 原文地址:https://www.cnblogs.com/fdd566/p/6598318.html
Copyright © 2011-2022 走看看