public member type
<unordered_set>

std::unordered_multiset::hash_function

hasher hash_function() const;
获取哈希函数
返回由 unordered_multiset 容器使用的哈希函数对象。

哈希函数是一个一元函数,它接受一个类型为key_type作为参数,并基于它返回一个唯一的 size_t 类型值。它在构造时被容器采纳(有关更多信息,请参阅 unordered_set 的构造函数)。默认情况下,它是对应 key_type 的默认哈希函数:hash<key_type>

参数



返回值

哈希函数。

成员类型hasher是容器使用的哈希函数的类型,在 unordered_multiset 中定义为其第二个模板参数的别名(Hash).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// unordered_multiset::hash_function
#include <iostream>
#include <string>
#include <unordered_set>

typedef std::unordered_multiset<std::string> stringset;

int main ()
{
  stringset myums;

  stringset::hasher fn = myums.hash_function();

  std::cout << "that: " << fn ("that") << std::endl;
  std::cout << "than: " << fn ("than") << std::endl;

  return 0;
}

可能的输出
this: 1046150783
thin: 929786026


请注意,两个相似的字符串如何产生截然不同的哈希值。

复杂度

常量。

迭代器有效性

没有变化。

另见