如何定义函数序列的哈希值(C++)

How to Define Hash Value for Sequence of Functions (C++)

本文关键字:哈希值 C++ 函数 定义 何定义      更新时间:2023-10-16

我有一个软件,可以对小图像(位图、精灵、纹理,无论你想怎么称呼它们)进行各种操作。为了防止大量的重复工作,我想设置一个缓存,这样一旦特定的源映像经过一系列操作,就可以简单地从缓存中调用它,而不是在需要的数十万次中每次都经过相同的序列。

我希望缓存是特定操作序列(带参数)的"哈希值"和实际数据之间的映射。不过,我对如何"散列"函数感到非常困惑。这是在c++11中实现的,所以我想到的一些Python解决方案不起作用,因为它们依赖于第一类函数和内省。什么是c++解决方案?

一个例子:

  1. src1 = load("path/file.png");
  2. convert_space(copy_src1, LABA);
  3. adj_hue(copy_src1, 45.0f);
  4. src2 = load("path/file2.png");
  5. compose_over(copy_src1, src2, dst);
  6. 缓存dst
  7. 利润:)

这听起来更像是你想要一个应用了一系列给定操作的图像的唯一标识符。

最直接的方法是只给每个操作赋予它自己的令牌,然后将该令牌附加到原始图像的标识符上,用于应用于它的每个操作

例如,如果您有一个映像test.png,并应用操作A和B,则可以使用test.png_A_B作为唯一标识符。