gpt4 book ai didi

c++ - 有没有办法用非常量变量初始化数组? (C++)

转载 作者:可可西里 更新时间:2023-11-01 14:52:30 26 4
gpt4 key购买 nike

我正在尝试创建一个这样的类:

class CLASS
{
public:
//stuff
private:
int x, y;
char array[x][y];
};

当然,在我将 int x, y; 更改为

之前它不起作用
const static int x = 10, y = 10;

这是不切实际的,因为我正试图从文件中读取 x 和 y 的值。那么有什么方法可以用非连续值初始化一个数组,或者声明一个数组并在不同的语句中声明它的大小?而且我知道这可能需要创建一个数组类,但我不确定从哪里开始,而且我不想在数组本身不是动态的时候创建一个 2D 动态列表,只是大小是在编译时未知。

最佳答案

使用 vector 。

#include <vector>
class YourClass
{
public:
YourClass()
: x(read_x_from_file()), y(read_y_from_file())
{
my_array.resize(x);
for(int ix = 0; ix < x; ++ix)
my_array[ix].resize(y);
}

//stuff

private:
int x, y;
std::vector<std::vector<char> > my_array;
};

关于c++ - 有没有办法用非常量变量初始化数组? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com