我正在创建一个二叉树类。我想通过创建一个将数据存储在数组中的类来简化这一过程,然后返回并使魔术发生。
但是,以下代码部分中的注释掉的行会导致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};
};
};
答案 0 :(得分:1)
如果你的数组大小是固定的(从你的代码来看,似乎就是这种情况),那么你就不需要做动态分配(即“新”)。
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";
}
答案 1 :(得分:1)
欢迎使用C ++。将std::array
用于固定大小的数组:
#include <array>
class bin_tree {
private:
std::array<int, 4>data;
public:
bin_tree() : data({1, 2, 3, 4}) {
}
...
};
如果您需要动态调整大小,请改用std::vector
。