在std :: unordered_set上:询问具有默认hasher的类型列表

时间:2012-08-30 13:17:01

标签: c++ c++11

在哪里可以找到具有默认哈希的类型列表(内置类型和标准容器)? (因此当我使用该类型的unordered_set时,我不需要写一个。)

2 个答案:

答案 0 :(得分:4)

您可以找到C ++标准here中定义的专业化列表。但是你不需要知道这些,编译器会告诉你是否需要提供自己的哈希函数。

答案 1 :(得分:1)

C ++标准将包含这样的列表。而不是挖掘它,这是一个部分列表:

  • 原始类型

  • 指针类型; shared_ptr<T>unique_ptr<T, D>

  • std::basic_string<...>专业化。

  • std::thread:id

  • std::type_index

  • std::error_code

最重要的是,pairtuplearray包含 。关键的作曲家函数hash_combine未包含在标准库中,但您可以随意从Boost中获取它。