我需要像字典一样的数据结构,但我不关心使用的密钥。我只想用键作为句柄来识别项目,所以我想让结构选择它。
示例:
RandomKeyDict dict;
Key k = dict.insert(foobar);
...
// somewhere else in the code
dict.get(k);
这个结构实际上是如何调用的?
编辑:我认为vector
不是我的伙伴,因为我还需要从结构中删除项目。
答案 0 :(得分:2)
实现方面,您可以使用字典作为后端创建自己,前端生成任意键。你需要保证密钥的唯一性,所以我建议使用递增计数器而不是可能重复的随机密钥。
术语方面,您可以调用句柄键,因为它们类似于用于查找对象的不透明指针,例如您可能在C或Win32编程中找到的对象。或门票,例如大衣检查室或汽车代客。
答案 1 :(得分:1)
这被称为“quasidictionary”。请参阅"An Efficient Quasidictionary", by Torben Hagerup and Rajeev Raman。