0

想象一个“项目”结构(表示为 JSON 哈希)

{
  id: 1,
  value: 5
}

现在想象一下,我有一组 100,000 个项目,我需要对与每个项目关联的值执行计算。在计算结束时,我用新值更新每个项目。

为了快速做到这一点,我一直在使用 GSL 向量库,将每个值加载为向量的一个元素。

例如,项目:

{ id: 1, value: 5 }
{ id: 2, value: 6 }
{ id: 3, value: 7 }

变成:

GSL::Vector[5, 6, 7]

元素 1 对应于项目 id 1,元素 2 对应于项目 id 2,依此类推。然后我继续对向量中的每个元素执行逐元素计算,乘法,除法等。

虽然这可行,但让我感到困扰的是我必须依赖按 ID 排序的项目列表。

是否有另一种结构类似于散列(允许我肯定地说特定结果值对应于特定项目),但允许我像向量一样进行快速、内存高效的元素操作?

我正在使用 Ruby 和 GSL 绑定,但如有必要,我愿意用另一种语言重新编写它。

4

0 回答 0