有人可以解释 vector<Node*>() 的含义吗

Could someone explain the meaning of vector<Node*>()

我正在解决Leetcode中的Clone Graph,但是我在以下代码中遇到了问题

 class Node {
public:
    int val;
    vector<Node*> neighbors;
    Node() {
        val = 0;
        neighbors = vector<Node*>();
    }
    Node(int _val) {
        val = _val;
        neighbors = vector<Node*>();
    }
    Node(int _val, vector<Node*> _neighbors) {
        val = _val;
        neighbors = _neighbors;
    }
};

语句 neighbors = vector<Node*>(); 是什么意思。更具体地说,vector<Node*>()。为什么后面有括号?

其实这个语句在class节点

的构造函数中
neighbors = vector<Node*>();

是多余的。

这里使用了移动赋值运算符,将调用classstd::vector<Node *>的默认构造函数vector<Node*>()创建的空向量赋值给已经创建的空向量neighbors 是 class 节点的数据成员。

您可以从 class 节点的构造函数中删除此语句。其实并没有什么效果。