版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/89784692
一 代码
#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