Vector除了可以像数组一样使用下表进行访问,自身也有便利之处。如下:
1、支持自动扩展:声明一个vecor变量时,如果没有预留,则默认容器容量为0,后续插入数据时,容量自动扩展,扩展规则为:1,2,4,8,16。如果有预留,扩展时的规则为2*N,2*2*N依次类推,如果当前内存块不够,则另开辟一块内存,并把之前内存数据拷贝到新创建的内存块中。
2、访问记录方式:(1)下标索引访问 (2) 迭代器访问 (3) 通过stl接口,直接返回最先插入元素
3、初始化方式
4、通过front和back返回第一和最后一个元素
部分操作方法使用如下:
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[]) {
vector<int> vSum;
cout<<"init vSum.capacity="<<vSum.capacity()<<endl;//初始容量
for(int i=1;i<=5;i++){
vSum.push_back(i*100);
cout<<"init vSum.capacity="<<vSum.capacity()<<endl;// 内存分配规则:1,2,4,8依次类推
}
int iSum=0;
cout<<"vSum.capacity="<<vSum.capacity()<<endl;
while(!vSum.empty()){
cout<<"vSum.size()="<<vSum.size()<<endl;
iSum += vSum.back();//优先返回最先插入的数据,结果顺序为:500,400,300,200,100
cout<<"iSum="<<iSum<<endl;
vSum.pop_back();//将最先插入的数据删除
}
return 0;
}
结果:

浙公网安备 33010602011771号