C++容器(17种容器)

C++容器(17种容器)
在这里插入图片描述

1、vector
vector是数组,但是跟C语言中数组不一样,C语言中的数组是固定大小的,而vector是一个动态数组,它会随着放入元素的数量增加而扩容,容器无非是就用来存储数据的,对数据的操作无非就是增删改查,所以再创造这些标准库STL容器的时候,都有留有对数据的操作的方法。网上的资料也很多大家可以参考 https://blog.csdn.net/wkq0825/article/details/82255984

2、std::list:双向链表,提供高效的插入和删除操作。链表跟数组不一样的地方就是在内存中存储的空间不是连续的,一个节点连接另一个节点是靠指针连接着,可以理解为我们在这个节点可以找到另一个节点的门牌号,然后根据这个门牌号又可以找到另一个节点,以此类推。上面的数组因为在内存空间上是连续的,所以在中间插入一个元素的时候,后面的元素都要往后面退一个格,所以数组在增加和删除元素的时候效率是不好高,而链表可以在中间断开,将门牌号给插入的元素,插入元素的门牌号又给之前连着的下一个元素,插入和删除的效率是O(1)https://blog.csdn.net/weixin_44668898/article/details/102154927

3、std::deque:双端队列,类似于动态数组,但支持在两端进行高效的插入和删除。跟vector不同的是deque是允许的时间复杂度常数范围内在头部插入元素
https://zhuanlan.zhihu.com/p/356210426

4、std::array:固定大小的数组,大小在编译时确定。
https://blog.csdn.net/qq_38410730/article/details/102802239

5、std::forward_list:单向链表,类似于std::list,但只支持单向遍历。
https://zhuanlan.zhihu.com/p/632546820

6、std::set:有序集合,不允许重复元素。
https://zhuanlan.zhihu.com/p/361591650

7、std::multiset:有序集合,允许重复元素。multi这个是多种多样的单词前面部分,所以顾名思义这个集合是允许有重复的元素的
https://zhuanlan.zhihu.com/p/361591650

8、std::unordered_set:无序集合,不允许重复元素。
https://zhuanlan.zhihu.com/p/439197313

9、std::unordered_multiset:无序集合,允许重复元素。unordered是无序,无规则的意思
https://zhuanlan.zhihu.com/p/621938683

10、std::map:有序键值对集合,基于键进行排序,不允许重复键。键是指一个包含value和key的键值对
https://zhuanlan.zhihu.com/p/127860466

11、std::multimap:有序键值对集合,基于键进行排序,允许重复键。
https://zhuanlan.zhihu.com/p/621920520

12、std::unordered_map:无序键值对集合,不允许重复键。
https://zhuanlan.zhihu.com/p/296360525

13、std::unordered_multimap:无序键值对集合,允许重复键。
https://zhuanlan.zhihu.com/p/621939247

14、std::stack:栈,后进先出(LIFO)的数据结构。
https://zhuanlan.zhihu.com/p/482240391

15、std::queue:队列,先进先出(FIFO)的数据结构。
https://blog.csdn.net/KEPROM/article/details/109744379

16、std::priority_queue:优先队列,按照特定顺序处理元素。
https://zhuanlan.zhihu.com/p/478887055

17、std::bitset:位集,用于处理二进制位。
https://zhuanlan.zhihu.com/p/607895839

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值