配对作为Memoization地图中的键

时间:2015-04-02 23:00:31

标签: c++ data-structures types

我希望您使用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;

}

1 个答案:

答案 0 :(得分:2)

std::unordered_map的密钥类型需要std::hash的实施,我猜您的错误告诉您std::pair<int, row>没有std::hash实现。我不认为该标准为std::hash指定了std::pair的专业化,因此您需要提供自己的专业版。