zoukankan      html  css  js  c++  java
  • vector中resize和reserve的区别,代码验证

    #include <vector>
    using namespace std;
    
    
    int main()
    {
        vector<int>   resizeVect;
        vector<int>   reserveVect;
    
        resizeVect.resize(50, 2);         //立即分配50个int,每个值为2,默认值为0,如果是class默认构造函数
        vector<int>::iterator iter = resizeVect.begin();
        printf("out put resizeVect value start
    ");
        for(; iter != resizeVect.end(); iter++)
        {
            printf("%d ", *iter);
        }
        printf("
    out put resizeVect value end
    ");
    
        printf("resizeVect capacity %d 
    ", resizeVect.capacity());
        printf("resizeVect size %d 
    ", resizeVect.size());
        resizeVect.push_back(3);          //添加一个值后,超出了capacity,capacity增加一半
        printf("resizeVect capacity %d 
    ", resizeVect.capacity());
        printf("resizeVect size %d 
    ", resizeVect.size());
    
    
        printf("
     
    ");
    
    
        reserveVect.reserve(50);          //预留capacity为50,但是没有内存,当然也不会有值
        iter = reserveVect.begin();
        printf("out put resizeVect value start
    ");
        for(; iter != reserveVect.end(); iter++)
        {
            printf("%d ", *iter);
        }
        printf("
    out put resizeVect value end
    ");
    
        printf("reserveVect capacity %d 
    ", reserveVect.capacity());
        printf("reserveVect size %d 
    ", reserveVect.size());
        reserveVect.push_back(3);         //添加一个值后,没有超出capacity,capacity保持不变,size+1
        printf("reserveVect capacity %d 
    ", reserveVect.capacity());
        printf("reserveVect size %d 
    ", reserveVect.size());
    
    
        system("pause");
        return 1;
    
    }
    


  • 相关阅读:
    Redux API之compose
    Redux API之bindActionCreators
    Django组件-admin
    Django组件-分页器
    Django视图之FBV与CBV
    前端综合练习
    05-前端之jQuery
    关于DOM操作的案例
    04-再探JavaScript
    03-初识JavaScript
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454253.html
Copyright © 2011-2022 走看看