c++ - 在构造函数中为数组赋值

标签 c++ arrays constructor initialization stdvector

我正在创建一个二叉树类。我想通过创建一个将数据存储在数组中的类来简化这一过程,然后返回并让奇迹发生。

但是,以下代码部分中注释掉的行会导致 Visual Studio 出现大量错误。这对我来说很有意义,但由于某种原因它无法编译。我不是 C++ 专家,但经过大量谷歌搜索后,没有任何东西适合我。


template 
class bin_tree
{
private:
    int *data;

public:
    int getData(int x)
    {
        return 1;
    };
    bin_tree() : data(new int[4])
    {
        //data = {1, 2, 3, 4};
    };
};

最佳答案

如果你的数组大小是固定的(从你的代码来看,似乎是这样),那么你不需要进行动态分配(即"new")。

http://coliru.stacked-crooked.com/a/97e112739e8a45de

class bin_tree
{
private:
    int data[4];

public:
    int getData(int)
    {
        return 1;
    };
    bin_tree()
        : data{1, 2, 3, 4} // C++11
    {
        // or:
        data[0] = 11;
        data[1] = 22;
        // ...
    };
};

#include <iostream>
int main()
{
    bin_tree tr;
    std::cout << "OK";
}

关于c++ - 在构造函数中为数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318114/

相关文章:

c++ - 构造函数、复制构造函数和堆栈创建 : C++

c++ - Pre C++20 位字段零初始化

c++ - 内存泄漏?使用新运算符分配已删除的指针

c++ - 初始化一个 constexpr std::array of pairs

javascript - 在本例中使用includes()函数

python - 如何从Python中的2D列表中获取最大x和最小y坐标?

c++ - 为什么我的函数不将字符串的第一个字符与最后一个字符交换?

javascript - Mongo只返回数组匹配查询的元素

c# - 异常可抛构造函数和初始化。最佳实践

javascript - 在 1 行代码中自定义构造函数