Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么';s差异-struct std::hash<;T>;vs名称空间std{struct hash<;T>;}?_C++ - Fatal编程技术网

C++ 什么';s差异-struct std::hash<;T>;vs名称空间std{struct hash<;T>;}?

C++ 什么';s差异-struct std::hash<;T>;vs名称空间std{struct hash<;T>;}?,c++,C++,这两种std::hash专门化变体之间有什么区别吗 template <> struct std::hash<T> { size_t operator()(const T& x) const { return ...; } }; 模板 struct std::hash{ 大小\u t运算符()(常数t&x)常数{ 返回。。。; } }; 名称空间std{ 模板 结构散列{ 大小\u t运算符()(常数t&x)常数{ 返回。。。; } }; }/

这两种std::hash专门化变体之间有什么区别吗

template <>
struct std::hash<T> {
  size_t operator()(const T& x) const {
    return ...;
  }
};
模板
struct std::hash{
大小\u t运算符()(常数t&x)常数{
返回。。。;
}
};
名称空间std{
模板
结构散列{
大小\u t运算符()(常数t&x)常数{
返回。。。;
}
};
}//std结束
这个:

template <>
struct std::hash<T> {
  size_t operator()(const T& x) const {
    return ...;
  }
};
namespace std {
template <>
struct hash<T> {
  size_t operator()(const T& x) const {
    return ...;
  }
};
} // end of std
模板
struct std::hash{
大小\u t运算符()(常数t&x)常数{
返回。。。;
}
};
这是不标准的。它是编译器提供的扩展,不可移植

这个:

template <>
struct std::hash<T> {
  size_t operator()(const T& x) const {
    return ...;
  }
};
namespace std {
template <>
struct hash<T> {
  size_t operator()(const T& x) const {
    return ...;
  }
};
} // end of std
名称空间std{
模板
结构散列{
大小\u t运算符()(常数t&x)常数{
返回。。。;
}
};
}//std结束
这是标准C++