vector STL 容器
简介:
vector是将元素置于一个动态数组中进行管理的容器
vector可以随机存取元素,支持索引值直接存取,用[]或者at()方法
vector下尾部添加或者删除元素非常快,但在中间或头部插入或者删除元素比较耗时
头文件:
#include<vector>
vector基本操作:
vector<int> v;
v.push_back(1);
int b = v.front();
int a = v.back();
a = v.pop_back();
v.size();
v.front() = 11;
v.back() = 41;
vector初始化:
vector<int> v;
v.push_back(1);
v.push_back(3);
vector<int> v2 = v;
vector<int> v3(v.begin(), v.end());
vector<int> v4(3);
vector<int> v4(3, 9);
vector遍历:
vector<int> v(10);
v.push_back(1);
v.push_back(3);
for(int i = 0; i < v.size(); i++) {
v[i] = i + 1;
}
for(vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
for(vector<int>::reverse_iterator rit = v.rbegin(); rit != v.rend(); rit++) {
cout << *rit << " ";
}
迭代器强化:
1. v.begin()指向v的第一个元素的位置,v.end()指向的是v最后一个元素的下一个位置
2. 迭代器种类:正向迭代器、逆向迭代器、双向迭代器、只读迭代器、、、、
vector删除和插入:
vector<int> v(10);
for(int i = 0; i < v.size(); i++) {
v[i] = i + 1;
}
v.erase(v.begin(), v.begin() + 4);
v.erase(v.begin() + 4);
for(vector<int>::iterator it = v.begin(); it != v.end(); ) {
if( *it == 2) {
it = v.erase(it);
}else {
it++;
}
}
vector<int> v1(2, 7);
v.insert(v.begin()+3, 100);
v.insert(v.begin()+3, 3, 100);
v.insert(v.begin()+2, v1.begin(), v1.end());
————————————————
版权声明:本文为CSDN博主「tangwei2014」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tangwei2014/article/details/49311969