gpt4 book ai didi

c++ - 如何使未确定大小的多维数组成为 C++ 中类的成员?

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

我正在查看来自 boost 的多维数组库,但我无法找到一种方法来在头文件中声明一个具有未定义形状的 multi_array 成员,例如“A”下面的例子:

类.h

std::size_t nX;
std::size_t nY;
std::size_t nZ;

boost::multi_array<double, 3> A;

稍后在源文件中实例化到一定大小:

Class.c++

nX = 3
nY = 4
nZ = 2

A = boost::multi_array<double, 3>(boost::extents[nX][nY][nZ]);

但这给了我一个不等的形状错误。有什么办法可以做我正在尝试的事情吗?

最终,我需要一个成员容器来存储一个待定大小的三维数据。这与 boost::numeric::ublas::matrix 一起用于二维没有问题,但现在我需要一些可以用于三维的东西。

谁能告诉我如何/是否可以使用 multi_array 类,或者告诉我另一个可能有用的库?

最佳答案

代替

A = boost::multi_array<double, 3>(boost::extents[nX][nY][nZ]);

你需要调用resize()函数作为

A.resize(boost::extents[nX][nY][nZ]);

关于c++ - 如何使未确定大小的多维数组成为 C++ 中类的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369417/

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