【发布时间】:2012-08-25 19:35:41
【问题描述】:
C++中下面一行代码使用的数据结构是什么?
map <char, int> dict;
它是一个哈希表吗?
【问题讨论】:
标签: c++ data-structures stl map std
C++中下面一行代码使用的数据结构是什么?
map <char, int> dict;
它是一个哈希表吗?
【问题讨论】:
标签: c++ data-structures stl map std
std::unordered_map 使用散列来存储其对象。
【讨论】:
该标准没有对std::map 施加任何特定的实现。它只给出所需的操作及其复杂性。这些因素导致了实际的实现选择,通常是Red-black Tree。
列出std::map 要求的章节是C++11 中的23.2.4 Associative Containers。
【讨论】:
通常使用自平衡 BST 实现。实现实际上是特定于编译器的。
std::map<char, int> dict;
char 是键,int 是对应的值。
【讨论】:
它使用红黑树按顺序组织键。
这就是为什么你可以按升序迭代它,并且关键对象必须有 operator
【讨论】: