gpt4 book ai didi

c++ - 调用 vector 的(默认)哈希函数

转载 作者:搜寻专家 更新时间:2023-10-31 00:35:27 28 4
gpt4 key购买 nike

我正在尝试获取不同类型对象的哈希值,例如字符串和 vector 。

下面的代码就可以了...

  std::string data = std::string("abc");
std::cout << std::hash<std::string>()(data) << std::endl;

...但不是这个,尽管我“只是”用 vector 类型替换了 string 类型。

  std::vector<int> data( {1,2,3} );
std::cout << std::hash<std::vector<int> >()(data) << std::endl;

g++ -std=gnu+11 说:

  invalid use of incomplete type 'struct std::hash<std::vector<int> >'

...为什么?

最佳答案

看起来你的编译器没有为 std::vector 实现 std::hash

根据 MSDN , Visual Studio 仅针对标量类型和某些字符串类型实现此功能。根据cpluplus.com ,编译器只需要为简单类型实现这一点,而不是所有类型。

关于c++ - 调用 vector 的(默认)哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23836905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com