gpt4 book ai didi

c++ - 在类的私有(private)部分声明数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:28 25 4
gpt4 key购买 nike

我有一个类,该类的部分输入是一个可变长度的 vector (称为数据)(假设它的长度为 N)。我在函数之后包含了这个:

    N = data_->size();

在类的私有(private)部分,我想声明一个数组double A[N][N]; .但是,当我尝试这样做时,我会听到一些话

error: "N is not a type name, static, or enumerator".

如何创建数组 A[N][N]

抱歉,如果这已经在其他地方解释过,因为我是 c++ 的新手,所以甚至不知道要寻找什么!

编辑——附加代码:

    class foo {     
public:
foo (std::vector &data)
: data(data_)
{
N = data_->size();
M = /* four times the last member of data (which is a vector of positive integers)*/
}

private:
double A[M][M];

void foo(void)
{
for (std::size_t i=1; i<=M; ++i)
{
A[i][i] = 1;
}
}
};

希望这能说得通……我怎样才能定义 A[M][M]?可能无法对 M 执行此操作,因为 M 是数据的函数。如果 M 不可能,那么 N 是否可能?

我能想到的一种可能性是我可以让 A 成为 std::vector< std::vector<double> > A然后将很多 0 或其他内容压入其中,然后修改值...

最佳答案

如果您正在使用 std::vector 类,则必须在 data_ 类的函数(例如构造函数)中创建 vector ,使用以下句子:

A = vector<vector<double> >(N, vector<double>(N, 0));

括号中的第一个参数是 vector 的大小,第二个是 vector 中数据的类型。

对不起我的英语不好,我是西类牙人而且我的英语不是很好。

关于c++ - 在类的私有(private)部分声明数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637950/

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