std::multimap 如何存储其元素

How does std::multimap store its elements?

本文关键字:存储 元素 multimap 何存储 std      更新时间:2023-10-16

可能的重复项:
如何实现C++多重映射?

C++参考资料

多重地图通常实现为二叉搜索树。

但是他们典型的内部代表是什么?是像std::map<Key, std::list<Value> >还是类似?我担心的是插入和迭代具有相同键的一组元素的复杂性。

如果您想知道特定操作的复杂性,您只需查看标准即可。该标准对复杂性有保证,但实现可以自由地以他们希望的任何方式满足这些保证。

对于插入,复杂性是O(lg n)的,除非您每次都指定最佳提示,在这种情况下,复杂性O(1)摊销。(详情请见此处:http://en.cppreference.com/w/cpp/container/multimap/insert)

对于对具有相同键的一组元素进行迭代,其复杂性与从任何迭代器迭代到另一个迭代器相同。假设您已经找到了迭代器,则迭代在要迭代的项目计数中是线性的。(抱歉,目前无法找到此参考资料)