所以我们知道构成C ++算法主干的基本结构是:
我的问题是哪个数据结构适合哪个应用程序。例如我知道对于数据库索引和搜索首选的选择是B +树和哈希表。任何人都可以对此有所了解,
答案 0 :(得分:1)
这不仅是一个C ++问题,也是一个算法问题。它可能过于宽泛,但我可以给你一些建议。
set
和map
:它们是有序容器,用于多次插入和读取结构。它可以在insert
时间内完成delete
read
O(logn)
。
vector
:用于dynamic array
之类的内容或经常push_back
的结构,如果没有其他原因,则应使用它。
deque
:与vector
非常相似,但也可以在push_front
时间内完成O(1)
list
:用于您需要频繁插入的结构,但随机访问次数少
unordered_map
和unordered_set
:寻找hash table
array
:用于大小固定的结构。
pair
和tuple
:将多个对象绑定到一个struct
。没什么特别的
除此之外,还有一些容器符合其他要求,您可以搜索它们。
例如any
和optional