如果您有两个密钥,并且无法使用boost::multiindex
?
我可以使用Key1和/或Key2拥有多条记录,但KEY1 KEY2的组合只有一条记录。 我的要求是我应该能够搜索
目前我正在使用std :: map
std::map <CString, std::vector<CutomClass>> m_map;
的 所以第一个键用在map中,另一个键是我的类的一部分(这个类只有更多的数据和第二个键)
我可以使用其他任何数据结构吗?
由于某些原因我无法使用boost库,因此我只想从标准库中寻找建议。
答案 0 :(得分:1)
我实现这个的方式将是三个数据结构。两个multi_map
(或unordered_multimap
),一个关键KEY1
,另一个关键字KEY2
。
第三个是我{1}}(map
)的KEY1 + KEY2组合。对于unordered_map
,这将是简单而直接的,对于map
,您必须组合键,或者哈希两个子键,然后组合哈希。
我似乎忘记提及,只有其中一个地图(组合键的键)将保存实际值,另外两个地图将保存指向组合地图中保存的值的指针。