通过多个键(字符串)搜索相同值的正确数据结构是什么?

时间:2018-02-13 08:47:07

标签: c data-structures

例如,如果它是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个哈希表,是否有适当的数据结构?

2 个答案:

答案 0 :(得分:3)

据我了解,您希望通过3个不同的键索引相同的值。 我说在这种情况下,3个哈希表是一个公平的选择。

您可能希望将它们捆绑在一个结构(或类,如果您使用的是C ++)中,这样它们就可以一起传递并保持一致。

答案 1 :(得分:0)

您可以创建一个包含所有3个键的结构键,然后您的搜索算法将查找结构的匹配成员。然后,您可以继续使用常规哈希表。

词典也是一种选择。但是,你有相反的情况设计字典(一个键 - >多个值),所以你必须修改字典以“反向”工作。