c++中的类数据库搜索算法

Database-like search algorithm in C++

本文关键字:数据库 搜索算法 c++      更新时间:2023-10-16

我有一个对象集合。每个对象由~4个参数描述(假设两个整数和两个字符串)。我如何在c++中实现这个集合,以便能够通过指定搜索条件快速找到这些对象的子集,例如:"查找所有第一个参数等于1的对象",或者"查找所有第二个参数等于'foo'的对象"(查找总是使用单参数查询:parameter=value)。我是否应该有4个std::maps,以便在O(logn)中执行每个基于参数的查找?如果我再加一个又一个参数呢?

这个问题有什么现有的解决方案吗?

你应该试试Boost Multi Index,这就是为这类事情准备的

一个数组用于数据,四个哈希表(std::tr1::unordered_map)用于索引。