我希望您使用unordered_map
对函数f(row, int)
进行Memoization。
不幸的是,我得到了一个奇怪的编译错误(很长很神秘)。
#include <vector>
#include <unordered_map>
#include <utility>
using namespace std;
typedef vector<bool> row;
int main(void) {
unordered_map< pair<int, row>, int > x;
}
答案 0 :(得分:2)
std::unordered_map
的密钥类型需要std::hash
的实施,我猜您的错误告诉您std::pair<int, row>
没有std::hash
实现。我不认为该标准为std::hash
指定了std::pair
的专业化,因此您需要提供自己的专业版。