从哪里可以找到具有默认散列器的类型列表(内置类型和标准容器)? (这样当我使用该类型的unordered_set
时,我不需要编写一个)。On std :: unordered_set:询问具有默认散列器的类型列表
0
A
回答
4
您可以在C++标准here中找到定义的特化列表。但是你不需要知道这些,编译器会告诉你是否需要提供你自己的散列函数。
1
C++标准将包含这样一个列表。而不是挖起来,这里的部分清单:
原始类型
指针类型;
shared_ptr<T>
和unique_ptr<T, D>
std::basic_string<...>
专长。std::thread:id
std::type_index
std::error_code
最重要的是,pair
,tuple
和array
包含不。关键的作曲家功能hash_combine
未包含在标准库中,但您应该随时采用Boost的作品。
+0
此外'std :: string'(和'std::(w/u16/u32)string')也应该在那里。 –
+0
我知道你说这是一个*“部分列表”*,但只是为了完整性,'std :: shared_ptr'和'std :: unique_ptr'也是专用的。 –
相关问题
- 1. 对于std :: list,在C++ STL(std :: unordered_set)中没有散列函数?
- 2. unordered_set的散列函数
- 3. unordered_set中的散列函数
- 4. C++上的散列函数很好unordered_set
- 5. 如何修改具有默认值的列的数据类型
- 6. 基本类型std :: vector的默认值
- 7. 如何Unmarshal不同类型的列表没有默认为float64
- 8. ruby:使用散列作为另一个散列的默认值?
- 9. 散列分类散列
- 10. 具有默认列的Kendo网格
- 11. 具有默认值的列 - usql
- 12. SQLite添加具有默认值的列
- 13. 添加具有默认值的列?
- 14. 我的散列键类型和函数有什么问题?
- 15. 如何将行插入列中具有默认值的表中?
- 16. Laravel迁移:添加具有现有列的默认值的列
- 17. apache poi获取默认列类型
- 18. DBFlow列类型不尊重默认值
- 19. 更改列数据类型(默认,NOTNULL ...)
- 20. 具有动态列定义的AG-GRID默认排序模型
- 21. 具有默认约束的列和具有默认约束的列之间有什么区别?
- 22. 有关散列表的C++问题
- 23. SQL服务器:选择......从FULL JOIN具有默认值的列
- 24. 如何散列std :: unordered_map :: const_iterator?
- 25. Qsort or Sort on unordered_set
- 26. 我的类有一个toString()方法,我该如何在std :: unordered_set中使用它进行散列?
- 27. 将抽象类型的列表复制到具有特定类型的列表
- 28. PowerShell数据类型和散列表MCA_Decode
- 29. 混淆默认isEqual和散列实现
- 30. Ruby风格:默认值散列
似乎G ++(4.6.2)要求'operator()'是一个const成员函数。这个答案中的链接没有提到这一点。这是标准中规定的吗? – updogliu
我在** 17.6.3.4散列要求**中看不到这样的要求。我将在稍后使用新版本的g ++进行检查。 – juanchopanza
@updogliu检查4.6.3和4.8,你是对的,它需要一个const操作符()。 – juanchopanza