无序映射:模板参数错误
Unorderedmap: Error in template arguments
我正在制作一个无序图:其键由三个字符组成值为整数。
这是代码:
namespace G {
typedef std::tuple< char, char, char> key_t;
struct key_hash : public std::unary_function<key_t, std::size_t>
{
std::size_t operator()(const key_t& k) const
{
return std::get<0>(k) ^ std::get<1>(k) ^ std::get<2>(k);
}
};
struct key_equal : public std::binary_function<key_t, key_t, key_t, bool>
{
bool operator()(const key_t& v0, const key_t& v1, const key_t& v2) const
{
return (
std::get<0>(v0) == std::get<0>(v1) &&
std::get<1>(v0) == std::get<1>(v1) &&
std::get<2>(v0) == std::get<2>(v1)
);
}
};
struct IndexGuide
{
int index;
};
typedef std::unordered_map<const key_t,IndexGuide,key_hash,key_equal> GuideDouble;
}
但是当我编译代码时,我收到此错误
In file included from StateTableGenerator.cpp:3:0:
StateTables.h:72:75: error: wrong number of template arguments (5, should be 3)
/usr/include/c++/4.6/bits/stl_function.h:115:12: error: provided for ‘template<class _Arg1, class _Arg2, class _Result> struct std::binary_function’
请帮我做错了什么?
我猜问题出在你的key_equal
,你制作一个接受三个参数的二进制函数。二进制函数是接受两个参数的函数。
相关文章:
- C++声明模板参数阴影模板参数错误
- 为什么 CRTP 模板C++给出无效参数错误?
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 参数错误可能与类型不匹配有关?
- printf 和 strftime 的参数错误无效
- 如何修复"ctypes"。参数错误:参数 2:<键入"异常.类型错误">:RaspberryPi 中的错误类型"错误
- 如何修复"没有重载函数需要 2 个参数"错误C++
- 术语不计算为函数采用 1 个参数错误?
- 从带有 getline() 的文件读入一行上有多个信息得到无效参数错误
- 为什么我不能像使用 std::string::size_type 那样使用 QList::size_type?(模板参数错误)
- cudaFreeHost() 无效参数错误
- 精神语法不会编译:函数模板参数错误?
- C 功能具有参考参数错误的迭代器错误.寻求解释
- 使用getDefaultCommConfig使用无效的参数错误
- C++ 可变参数模板和模板模板参数:错误:模板参数列表中参数 1 处的类型/值不匹配
- 使用SWIG生成的Python库时,向量分配器参数错误
- 错误C2664:无法转换参数错误
- C 作为参数错误的功能
- 命令行参数错误
- 增强Python参数错误