初始化结构指针的值

我开始学习cpp中的二叉树和动态分配的内存;因此初始化一个结构我这样做

struct node{
    int val;
    node* left;
    node* right;
};
//Initialize:
node* root = new node;
root->val = 7;
root->left = NULL;
root->right = NULL;

我想知道是否有更好的方法来设置结构值,而无需编写最后三行代码。我在某些网页上看到他们这样做:

int* n = new int(6);

谢谢!

iBug

您可以编写一个自定义构造函数:

struct node{
    int val;
    node* left;
    node* right;
    node(int);
};

node::node(int _v){
    this->val = _v;
    this->left = this->right = nullptr;
}

node *root = new node(6); // Works as you want

或者使用看起来更简单的成员初始化器列表:

struct node{
    int val;
    node* left;
    node* right;
    node(int _v) : val(_v), left(nullptr), right(nullptr) {};
};

不要忘记列表后面的花括号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章