例如,如果它是1个值的1个值,我将使用哈希表
key value
aaa AAA
bbb AAb
ccc AAc
我的情况是输入键有多个这样的字段:
key value
name: aaa, class: bbb, prop: ccc AAA
name: aaa, class: bbc, prop: ccd AAB
name: aab, class: bbb, prop: ccc AAC
name: aac, class: bbc, prop: ccc AAD
所以我会find value from DS where name=
或where class=
或where prop=
。
我只能创建3个哈希表,是否有适当的数据结构?
答案 0 :(得分:3)
据我了解,您希望通过3个不同的键索引相同的值。 我说在这种情况下,3个哈希表是一个公平的选择。
您可能希望将它们捆绑在一个结构(或类,如果您使用的是C ++)中,这样它们就可以一起传递并保持一致。
答案 1 :(得分:0)
您可以创建一个包含所有3个键的结构键,然后您的搜索算法将查找结构的匹配成员。然后,您可以继续使用常规哈希表。
词典也是一种选择。但是,你有相反的情况设计字典(一个键 - >多个值),所以你必须修改字典以“反向”工作。