c++ - 错误 c2338 C++ 标准不提供此类型的散列

标签 c++ unordered-map

所以我在 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 .可能会慢一些,但对我来说这不是问题。 HTH.

关于c++ - 错误 c2338 C++ 标准不提供此类型的散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21744193/

相关文章:

c++ - unordered_map 的存储位置

c++ - 当许多 unordered_map<string, double> 具有完全相同的字符串设置为键时如何节省内存

c++ unordered_map 冲突处理、调整大小和重新散列

c++ - float 的二进制序列化(仅限IPC)

C++:在类构造函数中初始化chars数组和int

c++ - 是否可以使用非常量键类型的 unordered_map?

c++11 - 在 C++11 的 unordered_map 中,如何更新特定键的值?

c++ - Openframeworks > 按每日计划动态更改(加载)图像

c++ - 为什么我不能在 visual studio 2012 的调试配置中将平台设置为 x64

c++ - 编译器如何解析结构成员的地址?