簡體   English   中英

C ++結構錯誤

[英]C++ struct error

struct Node{
    int ID, power, parent;
    vector<int> connectedNodes;

    Node(int ID_arg, int power_arg){
        ID = ID_arg;
        power = power_arg;
        parent = -1;
    }
};

struct Graph{
    int rootID;
    map<int, Node> nodes;
    map<int,int> subtreeSizes;

    Graph(){
        rootID = 1;
        nodes[1] = new Node(1,0);
    }

};

我現在肯定會嚴重失誤,因為我不知道怎么了。 它不喜歡我將節點放入節點圖中的方式。

那是因為您有一個類型不匹配,如果您發布了編譯錯誤,這將很明顯:

nodes[1] = new Node(1,0);
^^^^^^^^   ^^^^^^^^^^^^^
  Node&       Node*

您可能想要執行以下操作:

nodes[1] = Node(1, 0);

在這種情況下,這是行不通的,因為Node不是默認可構造的,而map::operator[]則需要這樣做。 無論如何,以下替代方法都將起作用:

nodes.insert(std::make_pair(1, Node(1, 0));
nodes.emplace(std::piecewise_construct,
              std::forward_as_tuple(1),
              std::forward_as_tuple(1, 0));
// etc.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM