C++ 为向量调用(默认)哈希函数
我试图得到不同类型对象的散列,比如字符串和向量 下面的代码是确定的C++ 为向量调用(默认)哈希函数,c++,hash,syntax,C++,Hash,Syntax,我试图得到不同类型对象的散列,比如字符串和向量 下面的代码是确定的 std::string data = std::string("abc"); std::cout << std::hash<std::string>()(data) << std::endl; std::string数据=std::string(“abc”); std::cout编译器似乎没有为std::vector实现std::hash 根据,VisualStudio仅对标量类型和
std::string data = std::string("abc");
std::cout << std::hash<std::string>()(data) << std::endl;
std::string数据=std::string(“abc”);
std::cout编译器似乎没有为std::vector
实现std::hash
根据,VisualStudio仅对标量类型和某些字符串类型实现此功能。根据,编译器只需要对简单类型实现这一点,而不是所有类型。对于类型std::vector
,没有专门化std::hash
。错误告诉你这一点。有一个用于std::string
(显然)。有关库提供的专门化的基本类型和库类型的列表,请参阅。感谢您对错误含义的解释和有用的链接。感谢您的解释。
std::vector<int> data( {1,2,3} );
std::cout << std::hash<std::vector<int> >()(data) << std::endl;
invalid use of incomplete type 'struct std::hash<std::vector<int> >'