【发布时间】:2014-10-02 11:07:31
【问题描述】:
我有一个看起来像这样的 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 的答案,但我目前无法使用它(这是家庭作业的一部分)。
【问题讨论】:
-
将其初始化为“默认值”还是特定值?
-
我已经提到我想用
n作为 c'tor 的输入来初始化它(默认为 0) -
您可以使用标准算法,但无论如何它们都会在后台应用某种形式的迭代。否则,您将扮演自己的迭代角色。
memset在这种情况下可以工作,但正如你所说,那是不可能的。 -
这是一个测验(不是生产代码)吗?只有这样:在单线程应用程序中,您可以使用在 Matrix' ctor 中设置为 n 的静态值。如果你不公开你的实现,你可以有一个自定义元素类型包含一个double,它的ctor用n初始化包含的double。
-
顺便说一下,memset 也会迭代! :-)
标签: c++ arrays templates constructor