我有一个数据结构,必须对其执行查找,我想优化......
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/