【问题标题】:c++ stl containers:where can we use them [closed]c ++ stl容器:我们在哪里可以使用它们[关闭]
【发布时间】:2018-05-05 03:33:21
【问题描述】:

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

  • 树集
  • 队列
  • 链表
  • 数组
  • 矢量图
  • unordered_map 和配对。

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

【问题讨论】:

  • 没关系,我找到了答案。
  • 恐怕这个问题太宽泛了。有很多情况可能适合不同的数据结构,而能够确定使用哪种结构的唯一方法是自己了解这些数据结构并理解它们。您还可以在 cppreference.com 等网站上查找有关标准库容器的信息。

标签: c++ data-structures stl


【解决方案1】:

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


  • set和map:它们是有序容器,用于both manytimes-insert-and-read结构。它可以在O(logn)时间完成insertdeleteread。

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

  • deque:很像vector,但也可以在O(1)时间完成push_front

  • list:用于需要经常插入但较少随机访问的结构

  • unordered_map和unordered_set:寻找hash table

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

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

除此之外,还有一些满足其他要求的容器,你可以搜索它们。 例如any 和 optional

【讨论】:

  • 感谢您的回答。但正如我已经提到的,我后来做了自己的研究并能够找到答案。所以如果有人知道如何关闭它。请随时这样做。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多