C++ 多重集、映射和哈希映射复杂性

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) 如果使用适当的哈希

我想知道STL multiset、map和hash map类在以下情况下的大O表示法的复杂性:

  • 插入条目
  • 访问条目
  • 检索条目
  • 比较条目
映射、集合、多重映射和多重集合 这些都是使用一种。它们具有以下渐近运行时间:

插入: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的修订版下,在未排序的**/C++ > No.C++中,它们已经被包含到LIbSTDC++、Visual C++和Boost C++库中。Big-O的定义是“最坏的情况”。@PauliusLiekis你不知道你在说什么。根据定义,Big-O是“上界”,与最坏情况、平均情况、最佳情况无关。