C++ unordered_map 与 自定义结构体
1. unordered_map 的 operator[] 需要自定义结构体有默认构造函数
比如下面程序会报异常
struct Node
{
int left, right; // [left, right]
int value;
int lazy;
Node(int l, int r) : left(l), right(r), value(0), lazy(0) {}
};
std::unordered_map<int, Node> m_nodeMap;
修改方式为添加默认构造函数
struct Node
{
int left, right; // [left, right]
int value;
int lazy;
Node() : left(0), right(INT_MAX), value(0), lazy(0) {}
Node(int l, int r) : left(l), right(r), value(0), lazy(0) {}
};
std::unordered_map<int, Node> m_nodeMap;