| vector | 容器,支持快速随机访问(连续存储) |
| list | 链表,支持快速插入/删除 |
| deque | 双端队列,支持随机访问(连续存储),两端能快速插入和删除 |
| stack | 栈 |
| queue | 队列 |
| priority_queue | 优先级队列 |
| C<T> c; | 创建一个空容器;适用于所有容器。 |
| C<T> c2(c); | 创建容器c的副本;适用于所有容器。 |
| C<T> c(b, e); | 用迭代器[b, e)范围内的元素构造容器;适用于所有容器。 |
| C<T> c(n); | 创建有n个值为默认的元素的容器;仅适用于顺序容器。 |
| C<T> c(n, t); | 创建有n个值为t的元素的容器;仅适用于顺序容器。 |
| *iter | 返回类型iter所指向的元素的引用 |
| iter->mem | 对iter进行解引用,并取得指定成员 |
| ++iter | 给iter加1,使其指向容器中下一个元素 |
| iter++ | |
| --iter | 给iter减1,使其指向容器中前一个元素 |
| iter-- | |
| iter== iter2 | 当两个迭代器指向同一个容器中的同一元素,或者当它们都指向同一个容器的超出末端的下一个位置时,两个迭代器相等。 |
| iter1!=iter2 | |
| iter + n | 在迭代器上加(减)整数值,将产生指向容器中前面(后面)第n个元素的迭代器; |
| iter - n | 新计算出来的迭代器必须指向容器中的元素或超出容器末端的下一位置。 |
| iter1 += iter2 | 复合运算:先加(减),再赋值 |
| iter1 -= iter2 | |
| iter1 - iter2 | 只适用于vector和deque |
| >, >=, <, <= | 比较迭代器的位置关系;只适用于vector和deque |
| size_type | 无符号型型,足以存储此容器类型的最大可能容器长度 |
| iterator | 此容器类型的迭代器类型 |
| const_iterator | 元素的只读迭代类型 |
| reverse_iterator | 按逆序寻址元素的迭代器 |
| const_reverse_iterator | 元素的只读逆序迭代器 |
| difference_type | 足够存储两个迭代器差值的有符号整型,可为负数 |
| value_type | 元素类型 |
| reference | 元素的左值类型,是value_type&的同义词 |
| const_reference | 元素的常量左值类型,等效于const value_type& |
| begin() | 返回指向容器中第一个元素的迭代器 |
| end() | 返回指向容器中最后一个元素的下一个位置的迭代器 |
| rbegin() | 返回指向容器中最后一个元素的逆序迭代器 |
| rend() | 返回指向容器中第一个元素前面的位置的逆序迭代器 |
| push_back(t) | 在容器的尾部添加值为t的元素,返回void类型 |
| push_front(t) | 在容器的前端添加值为t的元素,返回void类型 (注意:只适用于list和deque容器类型) |
| insert(p, t) | 在迭代器p所指向的元素前面插入值为t的新元素,返回指向新元素的迭代器 |
| insert(p, n, t) | 在迭代器p所指向的元素前面插入n个值为t的新元素,返回void类型 |
| insert(p, b, e) | 在迭代器p所指向的元素前面插入迭代器范围[b, e)内的元素,返回void类型 |
| size() | 返回容器中的元素个数,返回类型为C::size_type |
| max_size() | 返回容器可容纳的最多元素个数,返回类型为C::size_type |
| empty() | 如果容器为空,则返回true,否则返回false |
| resize(n) | 调整容器的长度大小,使其能容纳n个元素,新增元素采用值初始化 |
| resize(n, t) | 调整容器的长度大小,使其能容纳n个元素,所有新增元素值为t |
| back() | 返回容器的最后一个元素的引用。如果容器为空,则该操作未定义 |
| front() | 返回容器的第一个元素的引用。如果容器为空,则该操作未定义 |
| c[n] | 返回下标为n的元素的引用;如果n<0 or n>=size(),则该操作未定义 (注:只适用于vector和deque容器) |
| at[n] | 返回下标为n的元素的引用;如果下标无效,则抛出异常out_of_range异常 (注:只适用于vector和deque容器) |
| erase(p) | 删除迭代器p所指向的元素。返回一个迭代器,它指向被删除的元素后面的元素。如果p指向容器内最后一个元素,则返回的迭代器指向容器的超出末端的下一个位置;如果p本身就是指向超出末端的下一个位置的迭代器,则该函数未定义 |
| erase(b, e) | 删除[b, e)内的所有元素。返回一个迭代器,它指向被删除元素段后面的元素。如果e本身就是指向超出末端的下一个位置的迭代器,则返回的迭代器也指向超出末端的下一个位置。 |
| clear() | 删除容器内的所有元素,返回void |
| pop_back() | 删除容器内的最后一个元素,返回void。如果容器为空,则该操作未定义。 |
| pop_front() | 删除容器内的第一个元素,返回void。如果c为空容器,则该操作未定义 (注:只适用于list和deque容器) |
| c1 = c2 | 删除容器c1的所有元素,然后将c2的元素复制给c1。c1和c2的类型必须相同。 |
| c1.swap(c2) | 交换内容:调用该函数后,c1中存放的是c2原来的元素,c2中存放的是c1原来的元素。c1和c2的类型必须相同。该函数的执行速度通常要比将c2的元素复制到c1的操作快。 |
| c.assign(b, e) | 重新设置c的元素:将迭代器b和e标记的范围内所有的元素复制到c中。b和e必须不是指向c中元素的迭代器。 |
| c.assign(n, t) | 将容器c重新设置为存储n个值为t的元素。 |
| s.empty() | 如果栈为空,则true;否则返回false |
| s.size() | 返回栈中元素的个数 |
| s.pop() | 删除栈顶元素,但不返回其值 |
| s.top() | 返回栈顶元素的值,但不删除该元素 |
| s.push(item) | 在栈项压入新元素 |
| q.empty() | 如果队列为空,则返回true;否则返回false |
| q.size() | 返回队列中元素的个数 |
| q.pop() | 删除队首元素,但不返回其值 |
| q.front() | 返回队首元素的值,但不删除该元素 (注:该操作只适用于队列) |
| q.back() | 返回队尾元素的值,但不删除该元素 (注:该操作只适用于队列) |
| q.top() | 返回具有最高优先级的元素值,但不删除该元素 (注:该操作只适用于优先级队列。MSDN也为queue提供了该操作) |
| q.push(item) | 对于queue,在队尾压入一个新元素; 对于priority_queue,在基于优先级的适当位置插入新元素 |