C++ STL Tutorial
  • 📗概述
    • 🥣关于容器
    • ⬇️关于迭代器
    • 📱关于算法
    • 💿一个串联前文的例子
    • 🎍关于如何使用库的几句话
  • 🍜容器(Container)
    • 🎶string - 字符串
    • 🚃vector - 向量
    • ➿deque - 双向队列
    • 🍡stack - 栈
    • 🏁queue - 队列
    • 📜list - 链表
    • 🏵️set / multiset - 集合
    • 🗺️map / multimap - 映射
    • 🗒️容器简单小结
  • 🏭仿函数(Functor)
  • 💻算法(Algorithm)
  • 🧪写在最后
由 GitBook 提供支持
在本页
  • container 的特点总结
  • container 的使用场景

这有帮助吗?

  1. 容器(Container)

容器简单小结

简单小结一下各类容器的特点和选用条件。

container 的特点总结

vector
deque
list
set
multiset
map
multimap

典型内存结构

单端数组

双端数组

双向链表

二叉树

二叉树

二叉树

二叉树

可随机存储

是

是

否

否

否

对key而言,不是

否

元素搜索速度

慢

慢

非常慢

快

快

对key而言,快

对key而言,快

元素安插移除

尾端

头尾两端

任何位置

-

-

-

-

container 的使用场景

vector 可以涵盖其他所有容器的功能,只不过实现特殊功能时效率没有其他容器高。但如果只是简单存储,vector效率是最高的。

deque 相比于 vector 支持头端元素的快速增删。

vector 与 deque 的比较

  • vector.at()比deque.at()的效率高

    • 比如vector.at(0)是固定的,deque的开始位置是不固定的

  • 如果有大量释放操作的话,vector花的时间更少

  • deque支持头部的快速插入与快速删除,这是deque的优点

list 支持频繁的不确定位置元素的移除插入。

set 会自动排序。

map 是元素为键值对组并按键排序的set。

上一页map / multimap - 映射下一页仿函数(Functor)

最后更新于3年前

这有帮助吗?

结合概述一章中的关于容器,容器一章的前述内容以及上述简单小结,相信读者已经对C++STL中的容器有了十分清晰而又详尽的理解。恭喜,小可爱又变强了。

🍜
🗒️
😄