小编Dan*_*iel的帖子

显式默认的默认构造函数被隐式删除,因为 unordered_map 与结构一起用作键

我有以下 Graph 类:

class Graph {
private:
    struct Edge {
        string vertex1{}, vertex2{};
        int val{};

        Edge() = default;
        ~Edge() = default;
        explicit Edge(string v1, string v2, int value) : vertex1(std::move(v1)), vertex2(std::move(v2)), val(value) {};
        bool operator==(const Edge&) const;
    };

    unordered_map<Edge, Edge*> edges;

public:
    Graph() = default;
    ~Graph();
}
Run Code Online (Sandbox Code Playgroud)

当我想用默认构造函数构造一个 Graph 时,它说Explicitly defaulted default constructor of 'Graph' is implicitly deleted because field 'edges' has a deleted default constructor. 我应该如何更改我的代码,以便能够使用 Graph 的默认构造函数?

c++ unordered-map default-constructor

0
推荐指数
1
解决办法
495
查看次数

标签 统计

c++ ×1

default-constructor ×1

unordered-map ×1