像双容查找容器的哈希映射?

时间:2013-03-20 06:38:37

标签: c++ algorithm containers

我希望将大量对象存储在哈希映射类型容器(快速Google Sparse Hash)中,以尽可能提高内存效率。它们将被int索引 - 这是它们唯一的编码“坐标”。数据样本如下:

map[1] = object1
map[2] = object2
map[3] = object3
etc..

麻烦的是,有时我有一个对象引用,我需要找到它自己的坐标(索引int)。出于性能原因,在整个地图上执行完整扫描并查找该对象是不可能的。有一个单独的“反向”映射来根据对象索引坐标也是不可取的 - 因为这会使内存使用量翻倍。

到目前为止,我发现的唯一合理的解决方案是以某种方式标记需要使用“索引”访问自己坐标的对象 - 因此它们基本上得到反向坐标索引。我对这个解决方案并不完全满意,并且想知道我可能错过了一些专为此设计的特殊容器吗?本质上是一个双向索引容器,没有任何额外的内存使用?

0 个答案:

没有答案