C++各种容器的使用时机简介

C++标准库提供各种具有特色的不同容器。问题是,鉴于不同容器的底层实现不同,各容器都有自己的特点,该如何选择最佳的容器类型?
1.默认情况下选择 vector 是足够用的,Vector 的内部结构最简单,并允许随机访问,所以数据的访问十分方便灵活,数据的处理也也够快。
2.如需经常在头尾部插入删除元素,应该采用 deque;如需在元素被删除时能自动缩减内存空间,也该旋转 deque。
3.如需要在容器中段对元素插入删除移动等操作,使用 list 较好。List提供了特殊的成员函数,可常量时间内将元素在不同容器中转移。但 List 不支持随机访问。
4.如需经常根据某个准则查找元素,应考虑使用 unordered_set/multiset,如要求元素有序,则选择 set/mulitiset。
5.如果是key/value类型的元素,采用unordered_map/multimap,如需次序,则选择map/multimap。
6.如需关联式数组,应选择 unordered_map 或者map。
7.如需字典结构,应选择 unordered_multimap,或者multimap。

以下是STL容器能力一览表:在这里插入图片描述
以上内容参考C++标准库一书。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值