“随机密钥字典”结构的实际名称是什么?

时间:2016-04-19 10:43:01

标签: algorithm data-structures

我需要像字典一样的数据结构,但我不关心使用的密钥。我只想用键作为句柄来识别项目,所以我想让结构选择它。

示例:

RandomKeyDict dict;
Key k = dict.insert(foobar);
...
// somewhere else in the code
dict.get(k);

这个结构实际上是如何调用的?

编辑:我认为vector不是我的伙伴,因为我还需要从结构中删除项目。

2 个答案:

答案 0 :(得分:2)

实现方面,您可以使用字典作为后端创建自己,前端生成任意键。你需要保证密钥的唯一性,所以我建议使用递增计数器而不是可能重复的随机密钥。

术语方面,您可以调用句柄键,因为它们类似于用于查找对象的不透明指针,例如您可能在C或Win32编程中找到的对象。或门票,例如大衣检查室或汽车代客。

答案 1 :(得分:1)

这被称为“quasidictionary”。请参阅"An Efficient Quasidictionary", by Torben Hagerup and Rajeev Raman