…
vector
数组,线性,可变长。
返回值 | 函数 | 功能 |
---|---|---|
- | vector() | 空向量 |
- | vector(int n) | 有n个元素的向量 |
- | vector(int n, const t& t) | 有n个元素的向量,并初始化为t。 |
void | push_back(const T& x) | 尾部增加一个元素 |
iterator | insert(iterator it,const T& x) | 迭代器指向元素前增加一个元素x |
iterator | insert(iterator it,int n,const T& x) | 迭代器指向元素前增加n个相同的元素x |
iterator | insert(iterator it,const_iterator first,const_iterator last) | 迭代器指向元素前插入另一个相同类型向量的 |
void | pop_back() | 删除最后一个元素 |
iterator | erase(iterator it) | 删除迭代器指向元素 |
iterator | erase(iterator first,iterator last) | 删除[first, last)中元素 |
void | clear() | 清空所有元素 |
reference | at(int pos) | 返回pos位置元素的引用 |
reference | front() | 返回首元素的引用 |
reference | back() | 返回尾元素的引用 |
iterator | begin() | 返回第一个元素的迭代器 |
iterator | end() | 返回最后一个元素的下一个位置的迭代器 |
reverse_iterator | rbegin() | 反向迭代器,指向最后一个元素 |
reverse_iterator | rend() | 反向迭代器,指向第一个元素之前的位置 |
int | size() | 大小 |
bool | empty() | 是否为空 |
stack
栈,线性
返回值 | 函数 | 功能 |
---|---|---|
- | stack() | 空栈 |
void | push(const T& obj) | 入栈 |
void | pop() | 出栈 |
T& | top() | 访问栈顶 |
int | size() | 大小 |
bool | empty() | 是否为空 |
queue
队列,线性
返回值 | 函数 | 功能 |
---|---|---|
- | queue() | 构造 |
void | push(const T& obj) | 尾部入队列。这是通过调用底层容器的成员函数 push_back() 来完成的。 |
void | pop() | 头部出队列。 |
T& | front() | 返回队头的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 |
T& | back() | 返回队尾的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 |
int | size() | 大小 |
bool | empty() | 是否为空 |
set
集合,树实现
容器内的元素会被自动排序,不会出现重复值。
只能增删元素,不可以修改元素内容,否则会破坏其内部结构。
不支持下标操作符
返回值 | 函数 | 功能 |
---|---|---|
- | set() | 构造 |
- | set(set a) | 构造 |
- | set(T* ptr, T* ptr2) | 构造,使用ptr到ptr2的元组构造 |
int | size() | 大小 |
bool | empty() | 空 |
int | count(T key) | 元素k的个数 |
void | insert(T key) | 插入 |
void | pop_back(const T& elem) | 删除elem |
void | erase(iterator it) | 删除迭代器指向元素 |
void | erase(iterator first, iterator last) | 删除迭代器范围元素 |
void | clear() | 清空 |
iterator | find(key) | 查找key,找不到返回set.end() |
参考: c++stl set使用详解.
priority_queue
优先队列,堆,线性,逻辑上是二叉树
返回值 | 函数 | 功能 |
---|---|---|
- | priority_queue() | 构造 |
void | push(const T& obj) | 入队列(入堆)。 |
void | pop() | 移除队头(堆顶)。 |
T& | top() | 返回优先级队列中第一个元素(堆顶)的引用。 |
int | size() | 大小 |
bool | empty() | 是否为空 |
升序队列,小顶堆: priority_queue<int,vector<int>,greater<int> > pq;
降序队列,大顶堆: priority_queue<int,vector<int>,less<int> > pq;
Multiset
…