[关闭]
@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()
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注