C ++中用于以下代码行的数据结构是什么?
map <char, int> dict;
是哈希表吗?
std::unordered_map
使用散列来存储它的对象。
该标准没有对std::map
. 它只给出所需的操作及其复杂性。这些因素导致了实际的实现选择,通常是Red-black Tree。
列出要求的章节std::map
在 23.2.4 Associative Containers
C++11 中。
它通常使用自平衡 BST 来实现。实现实际上是特定于编译器的。
std::map<char, int> dict;
Achar
是键,而 anint
是对应的值。
它使用红黑树按顺序组织键。
这就是为什么你可以按升序迭代它,并且关键对象必须有 operator< 重载。