我有一组对象。每个对象由~4个参数描述(假设有两个整数和两个字符串)。如何在C ++中实现此集合,以便能够通过指定search-criterias快速查找这些对象的子集,即“查找第一个参数等于1的所有对象”,或“搜索第二个参数等于'foo'的所有对象” “(始终使用单参数查询执行查找:parameter=value
)。我应该有4个std::maps
,以便在O(logn)
中执行每个基于参数的查找吗?如果我添加另一个参数和另一个参数会怎
这个问题是否有现成的解决方案?
答案 0 :(得分:0)
数据的一个数组,索引的四个哈希表(std::tr1::unordered_map
)。
答案 1 :(得分:0)
你应该尝试Boost Multi Index,这只是为了这种事情。