在C++编程里面,STL 是必不可少的,我们先列出来常用的几种容器:
vector,list,Map,set,deque,queue
+ vector
vector是一种动态数组,其内容在内存中是连续存放的,正是由于这种特征,决定了vector 的代表特征:
随机访问速度很快,插入和删除效率较低。
其内存分配 是按照 1、2、4、8、16…指数倍增长的(有效避免反复的内存分配和释放),内存增长示意图如下:
先来看vector的几种初始化方式:
/** 初始化 - 方法1*/
vector<int> vec1;
for(int i=1;i<6;i++); // 通过push_back
vec1.push_back(i);
/** 初始化 - 方法2*/
vector<int> vec2(5); // 或者 vec2(5,0)赋初值
for(int i=1;i<6;i++); // 通过下标访问
vec2[i]=i;
/** 初始化 - 方法3*/
int a[5] = {1,2,3,4,5};
vector<int> vec3(a,a+5); // 通过数组拷贝
/** 初始化 - 方法4*/
vector<int> vec4 {1,2,3,4,5}; // c++11新方法
vector支持swap方式交换内存,这在两个vector之间进行数据交换时能够极大的提