STL总结

STL 容器

序列容器

vector
deque
list
forward_list

有序关联容器

map
multi_map
set
multi_set

无序关联容器

unordered_map
unordered_multimap
unordered_set
unordered_multiset

容器适配器

queue
stack
priority_queue

拟容器

array
bitset

vector

可动态划分内存的容器

基本操作:

  1. size( ) 返回vector中元素个数
  2. begin( ) 头部迭代器
  3. end( ) 尾部迭代器
  4. push_back( ) 从尾部加入元素
  5. pop( ) 抛出头部元素

类算法

  1. sort( vc.begin( ), vc.end( ) ) 排序
  2. lower_bound(vc.begin( ), vc.end( ), v) 找到第一个大于等于v的数
  3. upper_bound(vc.begin( ), vc.end( ), v) 找到第一个大于v的数

deque

双端开口容器

基本操作:

  1. size( ) 返回deque中元素个数
  2. begin( ) 头部迭代器
  3. end( ) 尾部迭代器
  4. top( ) 头部元素
  5. back( ) 尾部元素
  6. push_back( ) 尾部加数
  7. pop_back( ) 尾部弃数
  8. push_front( ) 头部加数
  9. pop_front( ) 头部弃数

类算法

  1. sort(deq.begin( ), dep.ed=end( ) ) 排序
  2. lower_bound(dep.begin( ), dep.end( ), v ) 找到第一个大于等于v的数
  3. upper_bound(dep.begin( ), dep.end( ), v ) 找到第一个大于v的数

list

双向链表

基本操作:

  1. lst.begin( ) 头部迭代器
  2. lst.end( ) 尾部迭代器
  3. lst.insert( ) 插入
  4. lst.erase( ) 删除

类算法

  1. remove( ) 移除
  2. unique( ) 去重
  3. sort( ) 排序
  4. reserve( ) 反转

forwar_list

和list类似

map

可用于存储键值对

基本操作

  1. size( ) 返回键值对个数
  2. empty( ) 检测是否为空
  3. begin( ) 头部迭代器
  4. end( ) 尾部迭代器
  5. insert( ) 插入键值对
  6. count( v ) 查询是否含有键值为v的键值对

类算法

  1. find(k) 获取键值为k的键值对的迭代器
  2. lower_bound(mp.begin( ), mp.end( ), v) 找到第一个键值大于等于v的键值对的迭代器
  3. **upper_bound(mp.begin( ), mp.end( ), v)**找到第一个键值大于v的键值对的迭代器
  4. equal_range(k) 放回两个迭代器 : lower_bound(k)upper_bound(k)

multi_map

与map共享操作,map保证只含一个键值为k的键值对
multi_map支持存在多个不一样的键值为k的键值对

unordered_map

与map共享大部分操作,map在插入过程中是保持有序的,即内含排序
unordered_map不保证有序,内不含排序

unordered_multimap

显然集成了multi_map与unordered_map

set

类似于数学中的集合

基本操作:

  1. size( )
  2. empty( )
  3. begin( )
  4. end( )
  5. insert( )
  6. count( )

multi_set

同map与multi_map关系一致,set保证不存在相同元素
而multi_set可以存在相同元素

unordered_set

不排序的set, 操作与set基本一致

unordered_multimap

集成了multi_map和unordered_map

queue

队列,先进先出

基本操作

  1. **empty( )**检测是否为空
  2. **push( )**加尾
  3. **pop( )**弃头
  4. **front( )**头部元素

stack

栈,后进先出

基本操作

  1. **top( )**头部元素
  2. **empty( )**检测为空
  3. **push( )**加尾
  4. **pop( )**弃头

priority_queue

优先队列,在队列的基础上用户可以自定义排序函数,使得队列中元素按照自定义排序函数定义趋于有序

基本操作:

  1. top( ) 头部元素
  2. empty( ) 检测是否为空
  3. push( ) 加尾
  4. pop( ) 弃头

bitset

array

待补。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值