0

有一个简单的函数创建一个存储在数组中的零填充矩阵。

void zeroMatrix(const int rows, const int columns, void* M)
{
   for(int i = 0; i < rows; i++)
       for(int j = 0; j < columns; j++)
          *(((double *)M) + (rows * i) + j) = 0;

}

如何更改代码以std::unique_ptr<double>用作 M?

4

1 回答 1

2

由于该zeroMatrix函数没有所有权转移,因此您需要一个参考

(假设 M 是一个向量)

void zeroMatrix(const int rows, const int columns, std::vector<double> &M)
{
   for(int i = 0; i < rows; i++)
       for(int j = 0; j < columns; j++)
          M[(rows * i) + j] = 0;

}
于 2013-04-02T12:55:12.480 回答