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



C++中是否有搜索时间复杂度为O(1(的数据结构?例如,检查元素中是否存在,如果存在,则其位置或关联的索引/键/值是什么

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

Google的Abseil库中还有高质量的开源"瑞士表"容器。在CppCon 2017上,有一个有趣的演讲描述了这些容器的实现和目标。

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

最新更新