gpt4 book ai didi

c++ - 如何创建一个 boost 矩阵数组?

转载 作者:太空狗 更新时间:2023-10-29 19:55:21 25 4
gpt4 key购买 nike

如何定义一个boost矩阵数组作为成员变量?

以下均无效。

boost::numeric::ublas::matrix<double> arrayM(1, 3)[arraySize];
boost::numeric::ublas::matrix<double>(1, 3) arrayM[arraySize];
boost::numeric::ublas::matrix<double> arrayM[arraySize](1, 3);

谢谢,拉维。

最佳答案

你初始化它的大小与类型无关。因此:

// this makes things easier!
typedef boost::numeric::ublas::matrix<double> matrix_type;

// this is the type (no initialization)
matrix_type arrayM[arraySize];

初始化数组时出现问题。你不能这样做:

TheClass::TheClass() :
arrayM(1, 3) // nope
{}

相反,您必须让它们默认构造,然后调整它们的大小:

TheClass::TheClass()
{
std::fill(arrayM, arrayM + arraySize, matrix_type(1, 3));
}

由于您使用的是 boost,请考虑使用 boost::array,因为它提供了更好的语法:

typedef boost::numeric::ublas::matrix<double> matrix_type;
typedef boost::array<matrix_type, arraySize> matrix_array;

matrix_array arrayM; // ah

TheClass::TheClass()
{
arrayM.assign(matrix_type(1, 3));
}

关于c++ - 如何创建一个 boost 矩阵数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503939/

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