目录
vector容器,直译为向量,实践中我们可以称呼它为变长数组。
使用时需添加头文件#include
vector使用时需添加数据类型进行模板实例化,如vector
与其它动态序列容器相比(deque, list and forward_list), vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。比起list和forward_list统一的迭代器和引用更好。
- vector():生成空数组;
- vector(size_type n, const value_type& val = value_type()):生成有n个value元素的一个数组;
- template
string (InputIterator first, InputIterator last): 利用迭代器生成数组;- vector (const vector& x):利用数组生成数组;
- size():返回vector存储的元素个数;
- capacity():重新分配内存之前,vector能存储的最大元素数;
- reserve(size_t n = 0):修改vector的容量为n,若n大于现有容量,则不进行改变;
- resize(size_t n, value_type val = value_type()):修改vector的元素个数,若n小于现有字符个数,对其进行截断,若n大于现有字符串个数,使用val进行填充;
- empty():确认容器是否为空,为空则返回true,否则返回false;
- 使用[ ]:vector支持使用[ ]进行类似于数组的随机访问;
- 使用at(size_t pos):类似与[ ],区别为at函数会进行越界检查;
- 迭代器与反向迭代器
- push_back(value_type val):尾插;
- insert(iterator pos, value_type val):在pos位置前插入val;
- void test()
- {
- vector<int> v;
-
- // 尾插
- v.push_back(1);
- v.push_back(2);
- v.push_back(3);
- cout<< "v:";
- for(auto e : v)
- cout << e << ' ';
- cout << endl;// v:1 2 3
- // 在pos前插入
- s1.insert(s1.begin(),4);
- cout<< "v:";
- for(auto e : v)
- cout << e << ' ';
- cout << endl;// v:4 1 2 3
- }
- iterator erase(iterator p):删除vector中p所指的字符
- iterator erase(iterator first, iterator last):删除迭代器区间[first,last)上所有元素
- string& erase(size_t pos = 0, size_t len = npos):删除从索引位置pos开始的len个元素
- void clear():清空容器;
参考下面的链接