C++ 多重集、映射和哈希映射复杂性
我想知道STL multiset、map和hash map类在以下情况下的大O表示法的复杂性:C++ 多重集、映射和哈希映射复杂性,c++,complexity-theory,big-o,C++,Complexity Theory,Big O,我想知道STL multiset、map和hash map类在以下情况下的大O表示法的复杂性: 插入条目 访问条目 检索条目 比较条目 映射、集合、多重映射和多重集合 这些都是使用一种。它们具有以下渐近运行时间: 插入:O(对数n) 查找:O(日志n) 删除:O(日志n) 哈希映射、哈希集、哈希多重映射和哈希多重集 这些都是使用。它们具有以下运行时: 插入:预期为O(1),最坏情况为O(n) 查找:预期为O(1),最坏情况为O(n) 删除:预期为O(1),最坏情况为O(n) 如果使用适当的哈希
- 插入条目
- 访问条目
- 检索条目
- 比较条目
查找:O(日志n)
删除:O(日志n) 哈希映射、哈希集、哈希多重映射和哈希多重集 这些都是使用。它们具有以下运行时: 插入:预期为O(1),最坏情况为O(n)
查找:预期为O(1),最坏情况为O(n)
删除:预期为O(1),最坏情况为O(n)
如果使用适当的哈希函数,几乎永远不会看到最坏的情况,但这是需要记住的——请看Crosby和Wallach的例子。这实际上是我的帖子,我无法理解为什么我看起来不活跃,因此无法更改它……你在
hash.*
上所说的都是指C++11无序和Boost。无序容器吗hash.*
类模板是其中的一部分。这些代码被并入C++ 11的修订版下,在