用于存储地址的单列列表的数据结构,更好地在C++中查找O(1)



我是C++的初学者。我需要存储在查找和添加新条目方面具有良好性能的地址列表。

我首先想看看地址是否已经存在于列表中,如果是,则不要写,否则将新条目添加到该列表中。

在进行某些操作时,查看地址是否在列表中。

在C++中,在内存和空间方面是否存在快速访问和动态增长的数据结构。

我建议使用std::map(通常实现为一些红黑树),它具有对数复杂性,因此在实践中应该足够了。

如果你有一个符合C++11标准的实现,你可以考虑std::unordered_map(通常实现为一些哈希表)。

如果您不需要任何与密钥相关的数据,而只需要处理它们的集合,请考虑std::setstd::unordered_set

许多库(Boost、Qt…)也实现了关联容器。

您正在寻找boost::unordereded_map。

最新更新