【发布时间】:2013-10-30 18:45:45
【问题描述】:
我想知道基于不同字段搜索大型数据集的最佳方法是什么。 例如,Person 对象定义如下:
Person:
first name
last name
phone numbers
我有 100k 个 Person 类型的对象,我想根据任何字段搜索特定的人?
我尝试使用不同的字段对数据集进行排序,以便可以在 O(logn) 时间内执行搜索操作,但我知道这不是正确的方法。
【问题讨论】:
-
你可以试试
Boost.MultiIndex: "Boost Multi-index Containers Library 提供了一个名为 multi_index_container 的类模板,它可以构建维护一个或多个具有不同排序和访问语义的索引的容器" -
感谢您的回复。我可以轻松使用这个库,但我想开发自己的解决方案。
-
你使用什么样的流程来构建你的结构?
insert_all->build_once->search场景是否适合您的需求? IE。你需要频繁插入/删除吗? -
会批量插入,然后根据任何字段进行大量搜索。
标签: c++ algorithm sorting search