@songying
2018-12-16T22:58:41.000000Z
字数 1251
阅读 950
STL容器: vector
STL
简介
函数操作
1. 构造函数与析沟函数
操作 |
说明 |
#inclide <vector> |
头文件导入 |
vector<Elem> c |
产生一个空vector,其中没有任何元素 |
vector<Elem> c1(c2) |
产生另一个同类型vector的副本(元素拷贝) |
vector<Elem> c(n) |
利用元素的default 构造函数生成大小为n的vector |
vector<Elem> c(n,elem) |
产生一个大小为n的vector, 每个元素值都是elem |
vector<Elem> c(beg, end) |
产生一个vector, 以区间[begin;end] 作为元素初值 |
c.~vector () |
销毁所有元素,并释放内存 |
2. 不变操作
函数 |
说明 |
c.size() |
返回当前的元素数量 |
c.empty() |
判断vector是否为空,等价于size()==0,但可能更快 |
c.max_size() |
返回可容纳的元素最大数量 |
capacity() |
返回容器所能容纳的元素最大数量 |
reserve() |
如果容量不足,扩大之 |
3. 操作符相关
函数 |
说明 |
c1 == c2 |
判断c1是否等于c2 |
c1 != c2 |
|
c1 < c2 |
|
c1 > c2 |
|
c1 <= c2 |
|
c1 >= c2 |
|
4. 赋值操作
函数 |
说明 |
c1 == c2 |
将c2的全部元素赋值给c1 |
c.assign(n, elem) |
将n个elem 赋值给c |
c.assign(beg, end) |
将区间[beg;end] 内的元素赋值给c |
c1.swap(c2) |
将c1和c2 的元素互换 |
swap() |
将c1和c2 的元素互换, 此为全局函数 |
5. 元素存取
函数 |
说明 |
c.at(idx) |
返回索引idx的元素,若越界,则抛出out_of_range |
c[idx] |
返回索引idx的元素,不进行范围u检查 |
c.front() |
返回第一个元素,不检查第一个元素是否存在 |
c.back() |
返回最后一个元素,不检查最后一个元素是否存在 |
6. 迭代器相关函数
函数 |
说明 |
c.begin() |
返回一个随机存取迭代器,指向第一元素 |
c.end() |
返回一个随机存取迭代器,指向最后元素的下一位置 |
c.rbegin() |
返回一个逆向迭代器,指向逆向迭代的第一元素 |
c.rend() |
返回一个逆向迭代器,指向逆向迭代的最后元素的下一位置 |
7. 插入,删除操作
函数 |
说明 |
c.insert(pos, elem) |
在pos位置插入elem, 返回新元素位置 |
c.insert(pos, n, elem) |
在pos位置插入n个elem,无返回值 |
c.insert(pos, beg, end) |
在pos位置插入区间[beg;end]内的所有元素,无返回值 |
c.push_back(elem) |
在尾部添加一个elem |
c.pop_back() |
移除最后一个元素,无返回值 |
c.erase(pos) |
移除pos位置上的元素,返回下一元素位置 |
c.erase(beg, end) |
|
c.resize(num) |
|
c.resize(num, elem) |
|
c.clear() |
|