标签:
vector 大小可变的数组。支持快速随机访问,在非尾部插入或者删除元素较慢。
deque 双端队列。支持快速随机访问,在头尾插入删除速度很快。
list 双向链表,只支持双向顺序访问。在当前位置插入删除操作速度很快。
forward_list 单向链表。只支持单向顺序访问。在当前位置插入删除操作速度很快。
array 固定大小数组。支持快速随机访问,不能添加删除元素。
string 与vector类似的容器,专门用于保存字符。
类型别名
iterator 此容器类型的迭代器类型
const_iterator
size_type
difference_type 元素距离类型
value_type 元素类型
reference 元素的左值类型,同value_type &
const_reference
构造函数
C c;
C c1(c2);//使用c2所有元素的拷贝进c1
C c(b, e);//将迭代器b到e之间的元素拷贝到c(不支持array)。
C c{a, b, c, d};//列表初始化
赋值与swap、assign
c1 = c2;//将c1中的元素替换成c2中的元素
c1 = {a, b, c, d};//替换为列表
a.swap(b);//交换a、b的元素,元素本身并未交换,只是交换了内部的数据结构,所以很快
swap(a, b);//swap之前所有的迭代器指针都指向原来的位置,不属于交换后的容器了。String除外,array除外,交换后会失效。
c.sign(b, e);//将另一个容器中从b到e中的元素替换到c
c.assign( il );//将初始值列表元素替换到c
c.assign(n, t);//n个t替换到c中
大小
c.size();//不支持forward_list
c.max_size();//c可保存的最大元素数目
c.empty();//是否为空
添加删除(不适用array)
c.insert(args);
c.emplace(inits);//其中写的是构造函数列表的参数,空则使用默认构造函数。
//通常,需要创建对象,然后将对象拷贝到容器中。emplace直接在容器中构造对象。
c.erase(args);//删除
c.clear();
关系运算
==、!=
<、<=、>、>= 无序容器不支持
获取迭代器
c.begin(), c.end()
c.cbegin(), c.cend()
反向容器的额外成员,不支持forword_list
reverse_iterator 逆序迭代器,
const_reverse_iterator 逆序迭代器
c.rbegin(), c.rend() 逆序迭代器,begin得到最后一个元素,rend为首元素之前
c.crbegin(), c.crend()
push_back(t) 在尾部插入值
emplace_back(args) 在尾部插入有参数初始化的元素
push_front
emplace_front
insert(p_iterator,t)
emplace(p_iterator,args)
insert(p_iterator,n_count,t)
insert(p_iterator,beg_iterator, end_iterator)
insert(p_iterator,{…})
向vector、string、deque插入元素,会使所有指向容器的迭代器、引用、指针失效。
Insert会返回当前插入位置,由于之前使用的当前位置可能会失效,所以再次向此位置插入时,已使用insert返回的当前位置。
front 返回容器的首元素的引用
back 返回容器的尾元素的引用
在使用容器的时候,如果需要改变容器内的元素值,一定要使用引用。
pop_back 删除尾元素
pop_front
erase(p_iterator)
erase(beg_iterator,end_iterator)
clear
由于是单向链表,所有的操作只能在当前位置之后。
befor_begin 首元素之前
cbefor_begin
insert_after
emplace_after
erase_after
resize(n_size);注意可能会删除后部元素,或使用默认初始化将元素添加到后部
resize(n_size, t);如果增大了容器,在后边全部填充t
capacity,能容纳多少元素,而不需要从新分配内存
size,当前容纳了多少元素
shrink_to_fit,将内存退回到size的大小
reserve,预分配capacity
substr
append
replace
find
compare
数值转换
stack
queue
priority_queue
适配器使得某种事物的行为,看起来更像另外一种事物。
对于给定的适配器,可以使用的容器是有限制的。
标签:
原文地址:http://www.cnblogs.com/qiusuo/p/4542596.html