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

时间:2013-12-18 00:03:03

标签: c++ c++11 hash function-pointers

我有一个软件可以对小图像(位图,精灵,纹理,无论你想要什么称呼它们)进行各种操作。为了防止浩瀚重复工作,我想设置一个缓存,以便一旦特定的源图像经过一系列操作,就可以从缓存中调用它而不是通过缓存来调用每个可能需要数十万次的序列。

我希望缓存是特定操作序列(带参数)的“哈希值”与实际数据之间的映射。不过,我对如何“散列”函数感到非常难过。这是在c ++ 11中实现的,因此我发现的一些Pythonic解决方案没有用,因为它们依赖于一级函数和内省。什么是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. 利润:)

1 个答案:

答案 0 :(得分:0)

听起来更像是想要一个具有给定系列操作的图像的唯一标识符。

最直接的方法是只为每个操作提供自己的令牌,然后将该令牌附加到原始图像的标识符,以应用于每个操作。

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