STL中各容器之函数总结

一.序列和关联非共有函数

所有标准库共有函数  (构造,相关属性,迭代器,插入与删除,比较,swap)


其中operator>,operator>=,operator<,operator<=,operator==,operator!=均不适用于priority_queue

顺序容器和关联容器共有函数


(1)   序列容器都提供5种相同的构造方法;关联容器都提供3种相同的构造方法

(2)    还有insert插入函数(序列容器有3个相同版本的插入。关联容器也有3个版本的)

(3)    序列容器提供2中相同的erase,关联容器提供3种相同的erase

(4)    属性函数:vector多了capacity()函数,其余都是sizemax_size,empty3

.非共有函数

1)只有序列容器才有的函数

元素的访问  元素的赋值

(2)   只有关联容器才有的函数

查找

(3)   序列元素对首尾元素的插入,删除与访问

Vector

插入与删除:push_back(),pop_back()

访问:frontback(分别均有2个版本)

重要:为什么没有push_front,,但是却有front,这是start迭代器的功劳

 

Dequelist

插入与删除:push_back(),pop_back()push_front,pop_front

访问:同vector

 

Stackqueue

插入与删除很明显

访问:queqevector。但是stack却只有top(也即back),为什么?

 

Slist

插入与删除:push_frontpop_front

访问:front

(4)   只有序列容器才有的访问之非头尾的访问

只有Vectordeque才可以,因为只有他们才提供了随机访问迭代器

1.[] (2种版本)

2.at2种版本)

5)只有序列容器才有的赋值

     都一样;assign2个版本)

6

Vector和string既有reserve,也有resize,它们两个可以利用reserve来避免不必要的重新分配。

由于deque没必要提供所谓的空间保留功能(原因见STL源码P143),所以其没有reserve函数。同理,List也只提供resize函数

关联容器不提供这两个函数。

 

7list在序列容器中比较特殊

合并:merge2个版本),splice3个版本)

排序:sort2个版本)

反转  

       多了删除:remove2个版本),unique2个版本)

8)关联容器特有的查找

     Setmultisetfind,lower_bound,upper_bound,equal_rangecount

     Mapmultimap:前4个函数还有一个非const版本

    

 

(9)

Vector和string既有reserve,也有resize,它们两个可以利用reserve来避免不必要的重新分配。

由于deque没必要提供所谓的空间保留功能(原因见STL源码P143),所以其没有reserve函数。同理,List也只提供resize函数

 

关联容器不提供这两个函数。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值