顺序容器的基本操作

顺序容器的基本操作
操作名称 函数表达式 说明 vector  list     deque
构造函数

C<T> c;

C是容器类型名,如vector,

T是元素类型,如int,string。

创建一个名为c的空容器。

yes yes yes
构造函数 C c(c2);

创建容器c,c中的元素是c2中所有元素的副本。

yes yes yes
构造函数 C c(b,e); 创建c,其元素师迭代器b和e标示的范围内元素的副本。 yes yes yes
构造函数 C c(n,t); 用n个值为t的元素创建容器c。 yes yes yes
构造函数 C c(n); 创建有n个值初始化元素的容器c。 yes yes yes
添加元素 c.push_back(t)

在容器c的尾部添加值为t的元素。

返回void类型。

yes yes yes
添加元素 c.push_front(t)

在容器c的前端添加值为t的元素。

返回void类型。

no yes yes
添加元素 c.insert(p,t)

在迭代器p所指向的元素前面插入值为t的新元素。

返回指向新添加元素的迭代器。

yes yes yes
添加元素 c.insert(p,n,t)

在迭代器p所指向的元素前面插入n个值为t的新元素。

返回void类型。

yes yes yes
添加元素 c.insert(p,b,e)

在迭代器p所指向的元素前面插入由迭代器b和e标记的范围内的元素。

返回void类型。

yes yes yes
容器大小 c.size()

返回容器c中的元素个数。

返回类型为c::size_type

yes yes yes
容器大小 c.max_size()

返回容器c可容纳的最多元素个数。

返回类型为c::size_type

yes yes yes
容器大小 c.empty() 返回标记容器大小是否为0的布尔值。 yes yes yes
容器大小 c.resize(n)

调整容器c的长度大小,使其能容纳n个元素。

如果n<c.size(),则删除多出来的元素;

否则,添加采用值初始化的新元素。

yes yes yes
容器大小 c.resize(n,t)

调整容器的大小,使其能容纳n个元素。

所有新添加的元素值都为t。

yes yes yes
访问元素 c.back()

返回容器c的最后一个元素的引用。

如果c为空,则该操作未定义。

yes yes yes
访问元素 c,front()

返回容器c的第一个元素的引用。

如果c为空,则该操作未定义。

yes yes yes
访问元素 c[n]

返回下标为n的元素的引用。

如果n<0 或者n>=c.size(),则该操作未定义。

yes no yes
访问元素 c.at[n]

返回下标为n的元素的引用。

如果下标越界,则该操作未定义。

yes no yes
删除元素 c.erase(p)

删除迭代器p所指向的元素

返回一个迭代器,指向被删除元素后面的元素。

如果p是指向c的最后一个元素,则返回的迭代器为c.end()。

如果p=c.end(),则返回的迭代器未定义。

yes yes yes
删除元素 c.erase(b,e)

删除迭代器b和e所标记范围内的所有元素。

返回跟上述一致。

yes yes yes
删除元素 c.clear()

删除容器c内的所有元素。

返回void

yes yes yes
删除元素 c.pop_back()

删除容器c的最后一个元素。

返回void。

如果c为空容器,则该函数未定义。

yes yes yes
删除元素 c.pop_front()

删除容器c的第一个元素。

返回void。

如果c为空容器,则该函数未定义。

no yes yes
赋值操作 c1 = c2

删除容器c1的所有元素,然后将c2的元素复制给c1。

yes yes yes
赋值操作 c1.swap(c2)

交换内容:调用完该函数之后,c1中存放的是c2原来的元素,

                    c2中存放的则是c1原来的元素。

yes yes yes
赋值操作 c.assign(b,e)

重新设置c的元素:将迭代器b和e标记的范围内所有的元素复制到c中。

注意:assign函数会首先删除c中的所有元素,所以迭代器b和e不能是指向c中的。

yes yes yes
赋值操作 c.assign(n,t) 将容器c重新设置为存储n个值为t的元素。 yes yes yes
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页