1

我尝试使用数组,但我不需要每个元素,因此它不会编译,因为我的界限太大。

所以,我想尝试一些更动态的东西,也许使用地图或矢量或其他东西(无论你们推荐什么)。

就像我有一个功能:

long long func(long long arg1, long long arg2, long long arg3){
      check if [arg1, arg2, arg3] is memoized, and if it is, return it
      ....function body...
      store return value with [arg1, arg2, arg3] in memoization cache
      return value;
  }

我怎样才能做到这一点?

4

1 回答 1

2

您可以使用map映射pair<pair<long long, long long>, long long>long long.

如果要检查密钥是否存在,只需使用find()[]使用重载运算符可以安全地分配和访问您确认存在于地图中的键。

编辑

或者,您可以定义自己的包含 3 个long long键的结构,并定义它们的自然顺序(以便map正常工作)。然后你可以避免冗长的pair语法。

于 2012-06-20T03:18:50.363 回答