顺序容器的用法总结

顺序容器

vector         支持快速随机访问

list              支持快速插入/删除

deque        双端队列

顺序容器适配器

stack         后进先出(LIFO)

queue       先进先出(FIFO)

priority_queue  有优先级管理的队列




容器的构造函数:

C<T> c;       创建一个名为c的容器。c是容器类型名,如vector,T是元素类型,如int或string。     适用于所有容器。                 

C(c2)           创建容器c2的副本;c和c2必须具有相同的容器类型,并存放相同类型的元素。适用于所有容器。                

C c(b,e)       创建c,其元素是迭代器b和e表示的范围内元素的副本。适用于所有容器。

C c(n,t)        用n个值为t的元素创建容器c,其中值t必须是容器类型C的元素类型的值,或者是可转换为该类型的值。   只适用于顺序容器。

C c(n)          创建n个值初始化元素的容器c。 只适用于顺序容器。




begin和end操作

c.begin()    返回一个迭代器,它指向容器c的第一个元素。

c.end()        返回一个迭代器,它指向容器c的最后一个元素。

c.rbegin()    返回一个逆序迭代器,它指向容器c 的最后一个元素。

c.rend()       返回一个逆序迭代器,它指向容器c的第一个元素前面的位置。




在顺序容器中插入元素:

c.push_back(t)      在容器c的尾部添加值为t的元素,返回void类型

c.push_front(t)        在容器c的前端添加值为t的元素,返回void类型

                                  只适用于list和deque类型。

c.insert(p,t)              在迭代器p所指向的元素前面插入值为t的新元素,返回指向新元素的迭代器。

c.insert(p,n,t)           在迭代器p所指向的元素前面插入n个值为t 的新元素,返回void类型。

c.insert(p,b,e)          在迭代器p所指向的元素前面插入由迭代器b和e标记的范围内的元素,返回void类型。



容器大小的操作:

c.size()                      返回容器c的元素个数,返回类型为c::size_type

c.max_size()            返回容器c 可容纳的最多元素个数,返回类型为c::size_type

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

c.resize(n)                  调整容器c 的长度,使其容纳n个元素

                                  如果n<c.size(),则删除多出来的元素;否则,添加采用值初始化的新元素。

c.resize(n,t)                 调整c 的大小,使其能容纳n个元素,所有新添加的元素值都为t


访问顺序容器内元素的操作:

c.back()                    返回容器c的最后一个元素的引用。如果c为空,则该操作为定义。

c.front()                     返回容器c的第一个元素的引用。如果容器c为空,则该操作为定义。

c[n]                             返回下标为n的元素的引用,返回值为左数,可以赋值。

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

c.at(n)                        返回下标为n的元素的引用,如果下标越界,则该操作为定义。

                                   只适用于vector和deque容器


删除元素:                    

c.erase(p)               删除迭代器p所指向的元素。

                                  返回一个迭代器,它指向被删除元素后面的元素。如果p指向容器内的最后一个元素,则返回的迭代器指向容器的超出末端的下一个位置。如果p本

                                  身就是指向超出末端的下一个位置的迭代器,则该函数为定义。

c.erase(b,e)            删除迭代器b和e所标记的范围内所有的元素。

                                  返回一个迭代器,它指向被删除元素段后面的元素。如果e本身就是指向超出末端的下一个位置的迭代器,则返回的迭代器也指向容器的超出末端的                                     下一位置 

c.clear()                   删除容器c内的所有元素。返回void

c.pop_back()          删除容器c的最后一个元素。返回void。如果c为空容器,则该函数未定义。

c.pop_front()           删除容器c 的第一个元素。返回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 的容器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值