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



我正在Leetcode中解决克隆图,但在以下代码中遇到了问题

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;
}
};

CCD_ 1这句话是什么意思。更具体地说,vector<Node*>()。为什么后面跟着括号?

实际上,Node 类的构造函数中的这句话

neighbors = vector<Node*>();

是多余的。

使用了移动赋值运算符,该运算符将通过调用类std::vector<Node *>的默认构造函数vector<Node*>()而创建的空向量赋值给已经创建的作为类Node的数据成员的空向量neighbors

您可以从类Node的构造函数中删除此语句。事实上,它没有任何作用。

最新更新