gpt4 book ai didi

ruby 性能 : Multi-key hashes

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:39 25 4
gpt4 key购买 nike

假设我有一些查找表,q(w, x, y, z),其中键的各种组合映射到不同的值;即,q(0, 0, 0, 0) = aq(0, 0, 0, 1) = bq(15, 16 , 23, "b") = c

就效率而言,在 Ruby 中实现此结构的最佳方法是什么? key 将动态生成,通常是字符串。我可以想到三种不同的哈希键控方法:

  1. 使用字符串作为键:q["a, b, c, d"] = 0
  2. 使用单个数组作为键:q[["a", "b", "c", "d"]] = 0
  3. 使用哈希的哈希:q["a"]["b"]["c"]["d"] = 0

我目前正在使用方法 2,它比我希望的要慢一点。这些键组合是动态生成的——如果我使用一个包含单个字符串的散列,字符串连接会更快吗?我应该首先从散列的散列开始吗?这种方法会占用更多的内存空间吗?

最佳答案

我会选择像您的 #1 这样的方法:创建一个字符串,然后将其作为您的 map 键。但是,请确保您的“代理哈希键”对于各种值组合而言都是唯一的。在这种情况下,您只需构建一个简单的字符串并需要一个映射。

一般来说,您希望 map 键尽可能不可变。 (一个关键的变异可能会弄乱表格)。有时在 Ruby 中会很困惑,因为字符串是可变的,但仍然是一个有值(value)的目标。

关于 ruby 性能 : Multi-key hashes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com