std::multimap 如何存储其元素
How does std::multimap store its elements?
可能的重复项:
如何实现C++多重映射?
C++参考资料
多重地图通常实现为二叉搜索树。
但是他们典型的内部代表是什么?是像std::map<Key, std::list<Value> >
还是类似?我担心的是插入和迭代具有相同键的一组元素的复杂性。
如果您想知道特定操作的复杂性,您只需查看标准即可。该标准对复杂性有保证,但实现可以自由地以他们希望的任何方式满足这些保证。
对于插入,复杂性是O(lg n)
的,除非您每次都指定最佳提示,在这种情况下,复杂性O(1)
摊销。(详情请见此处:http://en.cppreference.com/w/cpp/container/multimap/insert)
对于对具有相同键的一组元素进行迭代,其复杂性与从任何迭代器迭代到另一个迭代器相同。假设您已经找到了迭代器,则迭代在要迭代的项目计数中是线性的。(抱歉,目前无法找到此参考资料)
相关文章:
- 如何从存储在std::映射中的std::集中删除元素
- 带结构的二维矢量:如何存储元素
- C++将字符串数组的元素存储到变量中
- 数组对象的生存期是否在重用其元素存储时结束?
- 存储指向动态数组元素的指针
- 在固定大小的向量中存储指向元素的指针
- std::unordered_set 中的元素如何存储在C++内存中?
- 地图是否将元素存储为 std::p air?
- C++:矩阵高斯消除不起作用:使用单维数组来存储元素
- 如何在C++中将.csv文件的元素存储到二维向量中?
- 多集如何存储重复元素?
- 不能使用嵌套结构中的联合元素作为 scanf() 的参数来存储所需的值
- unordered_set是否适合存储矢量<int>元素的数据结构?如果是这样,我将如何实现哈希函数?
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 存储 std::list 元素的地址;内存
- std::unordered_map如何存储和比较其密钥,以实现无需订购即可快速访问元素?
- 指向对象表示元素或指向提供的存储元素的指针
- 在数组中存储元素时出错
- 在unordered_set中存储元素与在unordered_map中存储元素
- 用于按排序顺序存储元素并允许快速索引的数据结构