vector的原理
vector的构造函数
//无参构造
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个元素构造
vector<int>v3(10, 8);
printVector(v3);
//拷贝构造
vector<int>v4(v3);
printVector(v4);
vector的内容迭代输出
void printVector(vector<int>&v) {
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
vector赋值操作
//构造的方式赋值
vector<int>v1;
for (int i = 0; i < 10; i++) {
v1.push_back(i);
}
printVector(v1);
//等号赋值
vector<int>v2;
v2 = v1;
printVector(v2);
//assign
vector<int>v3;
v3.assign(v1.begin(), v1.end());
printVector(v3);
vector<int>v4;
v4.assign(10, 8);
printVector(v4);
vector的容量和大小
//empty() 判断容器是否为空
//capacity() 容器的容量
//size() 容器的大小
//resize(int num,elem) 重新指定容器的长度,若容器变长,以elem填充,默认以0填充
vector的插入删除
//push_back()尾插
vector<int>v1;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
printVector(v1); //10 20 30 40
//pop_back()删除最后一个元素
v1.pop_back();
printVector(v1); //10 20 20
//insert(const_iterator pos,int count,elem) 迭代器指定位置pos插入count个元素elem
v1.insert(v1.begin(), 2, 8);
printVector(v1); //8 8 10 20 30
//erase(const_iterator start,const_iterator end) 删除start和end之间的元素
v1.erase(v1.begin(), v1.end() - 3);
printVector(v1); //10 20 30
//clear() 清空容器
v1.clear();
printVector(v1);
vector()数据存取
at(int index)
[int index]
front() // 取出容器中的第一个元素
back() //取出容器中的最后一个元素
vector预留空间
reserve(int n) // 容器预留n个长度元素