我想知道 MAP
在 C++ 中如何可用,不是 MultiMap 只是简单的 Map,在内部实现。
我能想到的最好的是:
对于 Integer 映射:可以使用平衡二叉搜索树。
对于 String 映射:Compressed Trie 或类似的东西可以使用。
我真的很好奇,它是如何在 STL Map 中真正实现的。是使用了一些哈希函数还是与此完全不同的东西。
最佳答案
有序 容器,包括 std::map
被实现为平衡二叉树(通常是 RB 树,但任何其他平衡树都符合要求)。
对于此类问题,您需要的最重要的信息是容器中每个操作的复杂性要求,这是标准规定的。这也是最重要的答案,即只要满足复杂性要求,实际实现并不重要。
关于c++ - C++ 中 STL::MAP 的内部实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812522/