我尝试使用数组,但我不需要每一个元素,所以它不会编译因为我的界限太大了。
所以,我想尝试一些更有活力的东西,可能是使用地图或矢量或其他东西(无论你推荐什么)。
就像我有一个功能:
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;
}
我该怎么做?
答案 0 :(得分:2)
您可以使用map
将pair<pair<long long, long long>, long long>
映射到long long
。
如果您想检查密钥是否存在,请使用find()。通过[]
重载运算符,可以安全地完成分配和访问您确认的密钥。
修改强>
或者,您可以定义包含3个long long
键的自己的结构,并定义它们的自然顺序(使map
正常工作)。然后,您可以避免冗长的pair
语法。