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;
    
    }
    


  • 相关阅读:
    自我介绍 x
    第一次作业 x
    第二次作业 x
    第三次作业 x
    [C#] 用一种更优美的方式来替换掉又多又长的switchcase代码段
    通过设置光标形状实现拖拽控件时跟随一张透明图片的效果
    spring 入门笔记(一)
    PAT IO01. 表格输出(5)
    Maven 安装记
    华为机试 求最大三位数
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4454253.html
Copyright © 2011-2022 走看看