vector这个容器表示可变数组的序列容器,也是连续的内存空间,咱们在理解它的时候就按照顺序表的方式去理解便可。
咱们在看vector的经常使用接口时仍是将它分类来看:构造与析构、迭代器、元素访问、元素修改、容量。数组
构造---->
经常使用构造方式:
std::vector<int> first; //空
std::vector<int> second (4,100); //4个值为100的元素
std::vector<int> third (second.begin(),second.end()); //区间构造
std::vector<int> fourth (third); //拷贝构造
std::vector<int> v = { 1, 2, 3, 4, 5 };ide
迭代器--->
begin()
end()
返回值是iterator类型code
元素访问--->
[]和at均可以随即访问vector中的元素,不一样是在越界访问时at抛出异常,而[]则是触发assert
front()和back()分别返回这个容器第一个元素和最后一个元素的引用。
元素修改--->
1.assgin:有可能发生扩容接口
vector<int> v = { 1, 2, 3, 4, 5 }; v.assign(3, 5); for (auto e : v) { cout << e; }
输出555,说明assign就是将容器中替换为n个值为val的元素
2.push_back和pop_back尾插和尾删操做
3.insert插入
①:
iterator insert (iterator position, const value_type& val);
向pos位置插入值为val的元素
②:
void insert (iterator position, size_type n, const value_type& val);
向pos插入n个值为val的元素
4.earse:
iterator erase (iterator position);
iterator erase (iterator first, iterator last);
5.clear()清空
容量
和string中基本没有差异内存