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;

2. 需要定义比较函数

posted @ 2022-06-07 15:41  miyanyan  阅读(529)  评论(0编辑  收藏  举报