在std::unordered_set:上,请求一个具有默认散列的类型列表
On std::unordered_set: asking for a list of types having default hasher
在哪里可以找到具有默认hasher的类型列表(内置类型和标准容器)?(这样当我使用那种类型的unordered_set
时就不需要写了。)
您可以在这里找到C++标准中定义的专业化列表。但你不需要知道这些,编译器会告诉你是否需要提供自己的哈希函数。
C++标准将包含这样一个列表。下面是一个部分列表:
-
基元类型
-
指针类型;CCD_ 2和CCD_ 3
-
std::basic_string<...>
专业。 -
std::thread:id
-
std::type_index
-
std::error_code
最重要的是,pair
、tuple
和array
不包括在内。关键的composer函数hash_combine
不包含在标准库中,但您可以随意使用Boost中的函数。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 创建一个包含 c++ 默认值的环境文件
- 在 C++ 中声明 const 对象需要用户定义的默认构造函数.如果我有一个可变成员变量,为什么不呢?
- 如何处理没有默认构造函数但在另一个构造函数中构造的对象?
- 如何在C++中提供模板化函数作为另一个函数的参数,默认值?
- 使用具有默认参数的函数模板进行 decltype 会使结果混乱(一个有趣的问题或 gcc 的错误)
- 如何设置默认参数以防用户不输入另一个参数
- 在 c++ 中,如果我创建一个接受一个具有默认值的参数的构造函数 - 它会用作默认(空)构造函数吗?
- 具有另一个具有默认值的模板参数的模板推导
- 如何仅覆盖一个EXPECT_CALL的默认ON_CALL操作,并在以后返回到默认操作
- 为什么我需要将默认引用参数定义为 const 以便为其分配一个左值?
- C++用一个新类初始化二维向量;默认值更改
- C++类的非默认构造函数是另一个类的成员?
- 使编译器为 std::function 生成一个空的默认函数
- C++使用默认的复制构造函数,即使用户使用模板定义了一个复制构造函数
- 构造一个没有默认构造函数的空对象
- 包括一个大标头以使用对象作为默认参数
- C 使用默认限制的迭代器创建一个空的std :: String
- 我可以在类主体中默认一个私有构造函数吗?