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

标签 c++ performance dynamic data-structures lookup

我是 C++ 的初学者。我需要存储在查找和添加新条目方面表现出色的地址列表。

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

并且在某些操作的时候,查看地址是否存在于列表中。

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

最佳答案

我建议使用 std::map (通常实现为一些 red-black tree )具有对数复杂度,因此在实践中应该足够了。

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

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

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

关于c++ - 用于存储地址的一列列表的数据结构,在 C++ 中更好地查找 O(1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759638/

相关文章:

Java 正则表达式运行速度很慢

c++ - std::tuple 比 std::array 快吗?

java - Java中的动态文本框

c++ - 处理多个灯光和 GLSL 着色器程序

android - 如何使用 NDK 为 OpenCV 引用 hpp 文件?

c++ - 多平台类设计 C++

c++ - 将sys_time类型另存为二进制

c++ - 如何高效地实现事件循环?

ruby-on-rails - 如何动态调用:partial in rails?中的命名路由

c# - native 动态 Linq (C#)