常见STL 容器的实现原理

589 篇文章 6 订阅 ¥99.90 ¥99.00


1.array :固定大小的顺序容器,它们保存了一个以严格的线性顺序排列的特定数量的元素

2.vector动态数组:

    原理:连续的内存空间
    性能:查找删除与数组性能一样,增加元素引发扩容时会有性能压力,一般为当前大小的两倍,然后把原数组的内容拷贝过去,接着释放原来的空间
    size()表示数组中元素个数有多少,capacity()表示数组有多大容量

3.list 链表:

    原理:双向链表
    性能:常量性能的增删,不支持随机访问

4.map, multimap:

    原理:以Key建立的红黑树

5.set,multiset:

    原理:红黑树

6.unordered_map:

   所有无序容器的底层实现都是Hash Map

原理:序容器存储键值对时,会先申请一整块连续的存储空间,但此空间并不用来直接存储键值对,而是存储各个链表的头指针,我们称其为桶,各键值对真正的存储位置是各个链表的节点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值