1.函数构造
函数原型:
//vector<T>v; //采用模板类实现,默认构造函数
//vector(v.begin(), v.end()); //将v[degin(),end())区间的元素拷贝给本身。
//vector(n, elem);//构造函数将n个elem拷贝给本身。
//vector(const, vector& vec);//拷贝构造函数。
vector<int>v1;//默认构造,无参构造
for (int i = 0; i < 10; i++) {
v1.push_back(i);
}
printVector(v1);
//通过区间方式进行构造
vector<int>v2(v1.begin(), v1.end());
printVector(v2);
//n个elme方式构造
vector<int>v3(10, 300);
printVector(v3);
//拷贝构造
vector<int>v4(v3);
printVector(v4);
2.赋值操作
//1. operator=
vector<int>v2;
v2 = v1;
printVector(v2);
//2. assign
vector<int>v3;
v3.assign(v1.begin(), v1.end());
printVector(v3);
//4. n个emle方式赋值
vector<int>v4;
v4.assign(10, 300);
printVector(v4);
3.容器的容量与大小操作
判断是否为空--empty;
返回元素个数--size;
返回容器容量--capacity;
重新指定大小--resize;
4.插入和删除
vector<int>v2;
//尾插
v2.push_back(48264);
//尾删
v2.pop_back();
//插入
v1.insert(v1.begin(), 100); //参1为迭代器.
printVector(v1);
v1.insert(v1.begin(),2, 100);//参2插入个数,参3插入数据
printVector(v1);
//删除
v1.erase(v1.begin());//参数为迭代器
printVector(v1);
//清空
//v1.erase(v1.begin(), v1.end());
v1.clear();
printVector(v1);
5.数据存取
用迭代器获取容器中元素 vector<iint>iterator it=v.begin()
用[ ]和at也可以
front--返回第一个元素
back--返回最后一个元素
6.互换容器
v1.swap(v2); 容器v1与v2互换
使用swap达到收缩内存效果
vector<int>(v).swap(v);
vector<int>(v)//匿名对象x(新建容器用v拷贝,用v目前所使用的元素个来初始化x的容量和大小,匿名对象在本行代码执行完后被系统回收)
7.预留空间
如果一开始数级量比较大,可以一开始利用reserve预留空间
vector<int>v;
v.reserve(10000000);//减少新内存的开辟次数。