c ++ stl容器:我们在哪里可以使用它们

时间:2018-05-05 03:33:22

标签: c++ data-structures stl

所以我们知道构成C ++算法主干的基本结构是:

  • 树集
  • 队列
  • 链表
  • 阵列
  • 矢量地图
  • unordered_map和pair。

我的问题是哪个数据结构适合哪个应用程序。例如我知道对于数据库索引和搜索首选的选择是B +树和哈希表。任何人都可以对此有所了解,

1 个答案:

答案 0 :(得分:1)

这不仅是一个C ++问题,也是一个算法问题。它可能过于宽泛,但我可以给你一些建议。

  • setmap:它们是有序容器,用于多次插入和读取结构。它可以在insert时间内完成delete read O(logn)

  • vector:用于dynamic array之类的内容或经常push_back的结构,如果没有其他原因,则应使用它。

  • deque:与vector非常相似,但也可以在push_front时间内完成O(1)

  • list:用于您需要频繁插入的结构,但随机访问次数少

  • unordered_mapunordered_set:寻找hash table

  • array:用于大小固定的结构。

  • pairtuple:将多个对象绑定到一个struct。没什么特别的

除此之外,还有一些容器符合其他要求,您可以搜索它们。 例如anyoptional