错误 c2338 C++ 标准不提供此类型的哈希
error c2338 C++ Standard doesn't provide a hash for this type
所以我在 ClassA 中有一个无序映射,它是字符串和 ClassB 的类型,但是当我构建时,我收到 c2338 错误:C++ 标准没有提供此类型的哈希。
A.h 级
#include <unordered_map>
class ClassB;
ClassA
{
private:
std::unordered_map<std::string, ClassB*> map;
}
B类 .h
class ClassB
{
private:
size_t x, y, w, h;
int id;
}
我在boost::gregorian::date
上遇到了同样的问题。我需要一个快速(和肮脏)的解决方案,我最终使用了map<boost::gregorian::date, int>
而不是unordered_map
。可能会慢一点,但对我来说这不是问题。呵呵。
相关文章:
- C++哈希表 - 如何解决自定义数据类型作为键的unordered_map冲突?
- 解决由于在哈希函数中使用了不完整的类型而导致的编译失败
- 哈希多态类型的正确方式
- 错误:哈希函数必须可使用键类型的参数进行调用
- 为什么C++哈希函数的返回类型是 std::size_t,而不是独立于平台的类型?
- 使用对数据类型的向量的哈希表中的分段错误错误
- C 标准不为此类型提供哈希
- C 11多态映射键静态断言失败:哈希函数必须与密钥类型的参数无关
- 非库类型的无序key_type需要哈希<>专用化?
- 错误 c2338 C++ 标准不提供此类型的哈希
- 可视 C2338:C++ 标准不为此类型提供带有字符串和unique_ptr的哈希
- 如何用tbb实现一个将键映射到不同类型值的并发哈希表
- 编译字符类型的时一致性哈希
- 二维哈希映射:行和列类型为指针的矩阵
- 正在对unordered_set的自定义指针类型进行哈希处理
- 如何为各种模板类型构建哈希函数
- 适用于任何枚举类型的C++11哈希函数
- 存储具有字符串类型键的哈希值的最佳结构
- 使嵌套类型哈希能够用于std::unordered_set
- 访问tr1/unordered_map的内部类型哈希函数