我正在使用以一般稀疏格式(压缩行)存储的稀疏矩阵。即我存储矩阵:
0 x y 0
0 0 0 0
z 0 0 0
以下列形式:
我正在寻找哈希函数,这将允许我“缓存”稀疏模式(即上面带有整数的前三个向量)。为此,我想我需要一个好的哈希函数,我可以提供给我计划使用的哈希映射实现,即C ++的std::unordered_map
。
有没有人有关于如何为这样的问题找到好的哈希函数的一些提示?
答案 0 :(得分:2)
如果您的CSR表示对于每个矩阵是唯一的,即非零元素以从左到右,从上到下的顺序显示,那么您可以散列所有向量并使用boost::hash_combine
组合散列(如果你不想依赖Boost,只需复制粘贴它,它很短。)