2011-12-07 23 views
2

我有一個對象集合。每個對象由〜4個參數描述(比方說兩個整數和兩個字符串)。我怎樣才能在C++中實現這個集合,以便能夠通過指定搜索標準快速找到這些對象的子集,即「查找所有第一個參數等於1的對象」,或者「搜索所有第二個參數等於'foo'的對象」 「(查找始終使用單參數查詢執行:parameter=value)。我應該有4 std::maps,以便在O(logn)中執行每個基於參數的查找?如果我添加另一個參數又如何?C++中的數據庫式搜索算法

這個問題是否有任何現有的解決方案?

+2

爲什麼不使用實際的數據庫? SQLite或類似的東西?這不符合你的要求嗎? – Bart

+0

它會永遠是等於比較還是你想做不平等和什麼? – Corbin

+0

@Corbin:總是等於比較 –

回答

0

一個用於數據的數組,四個散列表(std::tr1::unordered_map)用於索引。

+2

[Boost.MultiIndex](http://www.boost.org/libs/multi_index/)會將它包裝到一個容器中。 ; - ] – ildjarn