template<typename T>
struct hash;
template<typename T> class WUG{
public:
WUG(){
unordered_map<string,typename T,hash> vertexmap; //Problem
}
};
我在这段代码中遇到了一些错误,实际上并没有对我说什么。我应该如何正确声明?
我收到的错误消息是:
[错误]模板参数2无效
[错误]模板参数5无效
最佳答案
您有using namespace std;
从std
namespace 导入所有名称,包括std::hash
,请修复:
struct MyHash;
template <typename T>
class WUG {
public:
WUG() {
unordered_map<string, T, MyHash> vertexmap; //Problem
}
};
或使用标准哈希值:
template <typename T>
class WUG {
public:
WUG() {
unordered_map<string, T> vertexmap; //Problem
}
};
关于c++ - 声明将字符串映射到模板的unordered_map时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44394063/