c++ - 具有快速查找功能的对象列表的数据结构

标签 c++

我有一个数据结构,必须对其执行查找,我想优化......

struct Data
{
 std::string id_;
 double data_;
};

我目前使用 std::vector<Data>std::find算法,但我想知道是否另一种数据结构会更方便:

  • 哈希表?
  • map ?
  • 增强多索引容器?
  • 其他事情?

编辑:

每次我从网络收到消息时,我都必须查找这个 vector (以 id 作为键),并更新/检索一些信息。 (数据结构的字段比我的示例中的字段多)

编辑2:

  • 我不关心顺序。
  • 我必须经常在这个数据结构中插入/删除元素。

最佳答案

这实际上取决于您的要求,但有两种可能性是对 vector 进行排序并进行二分搜索,或者使用 map 。两者都可以在15分钟左右完成,所以我建议你都尝试一下。

编辑:考虑到您想要经常添加和删除内容的要求以及数据的大小,我会使用 unordered_map (即哈希表)作为第一次尝试。您稍后可以随时更改为其他容器。

关于c++ - 具有快速查找功能的对象列表的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6184034/

相关文章:

c++ - CMAKE:在函数内创建和构建列表——具有目录或全局范围

c++ - "return"带有 & 运算符但没有指针的多个值 : How does this work?

c++ - 如何在进行分页时设置 Qt::Vertical headerData of QSqlQueryModel 增加数字

c++ - 如何在不需要实时的情况下制作时隙(只是模拟)

c++ - Qt 堆碎片 - QObjects 可以放在内存池中吗?

c++ - 分配 : *** error for object 0x1029249b0: pointer being freed was not allocated

c++ - 编译器如何理解指针类型?

c++ - QML map 可见区域

c++ - 是否有任何 C 标准函数可以将值 "1"传递给 all (%s)

c++ - mingw64 (win8.1) 如何让他看到boost libs?