C++的vector内存管理成员函数的行为测试

博客主要围绕C++展开,包含C++代码以及代码的运行相关内容,聚焦于信息技术领域的C++编程。

一 代码

#include <iostream>
#include <vector>
using namespace std;
int main(){
    vector<int> iVec;
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    
    /*1个元素,容器容量为1*/
    iVec.push_back(1);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    
    /*2个元素,容器容量为2*/
    iVec.push_back(2);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    
    /*3个元素,容器容量为4*/
    iVec.push_back(3);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    
    /*4个元素,容器容量为4*/
    iVec.push_back(4);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    
    /*5个元素,容器容量为8*/    
    iVec.push_back(5);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    
    /*6个元素,容器容量为8*/    
    iVec.push_back(6);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;

    /*7个元素,容器容量为8*/    
    iVec.push_back(7);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;

    /*8个元素, 容器容量为8*/    
    iVec.push_back(8);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;

    /*9个元素, 容器容量为16*/    
    iVec.push_back(9);
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;

    /* vs2005/8 容量增长不是翻倍的,如
    9个元素   容量9
    10个元素 容量13 */

    /* 测试effective stl中的特殊的交换 swap() */
    cout<<"容器大小:"<<iVec.size()<<"容量:"<<iVec.capacity()<<endl;
    vector<int>(iVec).swap(iVec);

    cout<<"临时的vector<int>对象的大小为:"<<(vector<int>(iVec)).size()<<endl;
    cout<<"临时的vector<int>对象的容量为: " <<(vector<int>(iVec)).capacity()<<endl;
    cout<<"交换后,当前vector的大小为:"<<iVec.size()<<endl;
    cout<<"交换后,当前vector的容量为:"<< iVec.capacity()<<endl;

    return 0;
}

二 运行

[root@localhost charpter03]# g++ 0316.cpp -o 0316
[root@localhost charpter03]# ./0316
容器大小:0容量:0
容器大小:1容量:1
容器大小:2容量:2
容器大小:3容量:4
容器大小:4容量:4
容器大小:5容量:8
容器大小:6容量:8
容器大小:7容量:8
容器大小:8容量:8
容器大小:9容量:16
容器大小:9容量:16
临时的vector<int>对象的大小为:9
临时的vector<int>对象的容量为:9
交换后,当前vector的大小为:9
交换后,当前vector的容量为:9

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值