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> >'