C ++中具有O(1)搜索时间复杂度的数据结构

时间:2018-10-13 12:40:26

标签: c++ c++11 data-structures time-complexity c++14

c ++中是否有一个数据结构,其搜索时间复杂度为O(1)?就像检查一个元素是否存在,如果存在,检查其位置或相关索引/键/值是什么

2 个答案:

答案 0 :(得分:10)

您想要的是C ++ 11的std::unordered_map,平均访问时间为O(1),最坏情况为O(n)。

答案 1 :(得分:3)

Google的Abseil库中还有高质量的开源This。在CppCon 2017上,"Swiss table" containers描述了这些容器的实现和目标。

简而言之,它们就像标准中的哈希容器一样,但是它们通常提供更好的性能,因为它们对缓存更友好(如注释中所述,以不保持引用稳定性为代价)。

相关问题