gpt4 book ai didi

c++ - 如何在类中初始化二维数组?

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:23 25 4
gpt4 key购买 nike

我有一个 Matrix 类,看起来像这样:

template<int R, int C>
class Matrix{
public:
double matrix[R][C];
Matrix(double n = 0)...{}
...
};

Matrix<2,3> m;

如何在 c'tor 中使用 n 创建新矩阵时初始化数组,而不是逐个单元格地迭代整个数组?

我在这里阅读了一些关于名为 memset 的答案,但我现在不能使用它(这是家庭作业的一部分)。

最佳答案

我的建议是尽可能使用标准算法:

    std::for_each(std::begin(matrix), std::end(matrix), 
[n](double* row) { std::fill_n(row, C, n); } );

完整示例:

template<int R, int C>
class Matrix{
public:
double matrix[R][C];
Matrix(double n = 0) {
std::for_each(std::begin(matrix), std::end(matrix),
[n](double* row) { std::fill_n(row, C, n); } );
}
};

关于c++ - 如何在类中初始化二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26159523/

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