我需要使用多个键(int类型)来从哈希表中存储和检索单个值。我将使用多个键来索引单个项目。我需要快速插入和查找哈希表。顺便说一下,我不能在实现中使用Boost库。
我该怎么做?
我该怎么做?
unordered_map<std::pair<int,int>, value_type>
。如果你想用多个键索引相同的数据集,请查看Boost.MultiIndex。最简单的方法可能是保持一个指向列表元素的指针/索引映射。
这里需要更多的细节,你需要支持删除吗?元素如何设置?可以使用boost::shared pointers吗?(如果需要支持删除,则相当有帮助)
我假设在这种情况下值对象很大,或者由于其他原因你不能在常规映射中简单地复制值。
将键作为整数串连接字符串存储,例如
(int1,int2,int3) => data
使用更高的数据类型,如uint64_t,在其中可以添加单个值以形成键
// 参见下面的注释以获取方法
,前提是
data至少有
3*N`位。 - Arun