在我的代码中,我有一个像这样的 double 矩阵:
double * * matrix=new double * [10];
for(int i=0;i<10;i++)
matrix[i]=new double[10];
当我初始化它时,我想在这个矩阵的每个单元格中都有 NaN 值,是否可以自动执行或唯一的解决方案是:
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
matrix[i][j]=nan("");
是否有可能推断出当矩阵构造时,它不使用 double 的默认构造函数插入,对于每个矩阵 [i][j],0.0 值但插入 nan("")?
最佳答案
double
没有默认构造函数,即 double
值默认未初始化。
要避免显式实现循环,您可以使用 std::vector
:
#include <vector>
...
std::vector<std::vector<double>> matrix(10, std::vector<double>(10, nan("")));
或:
#include <vector>
using namespace std;
...
vector<vector<double>> matrix(10, vector<double>(10, nan("")));
关于c++ - 如何用 NaN 元素初始化双矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50659902/