如何在矩阵向量的所有单元格中放置NULL?

Roy*_*lov 1 c++ vector

我正在尝试使用NULL值初始化矩阵的所有单元格,但这里有些错误.
代码 :

vector<vector<Distance*> > distanceMatrix;  
    for (int i = 0; i < 7 ; i++)
        for (int j = 0; j < 7 ; j++)
            distanceMatrix[i][j].push_back(NULL);  
Run Code Online (Sandbox Code Playgroud)

我敢打赌这是愚蠢的,谢谢你的帮助.

ere*_*eOn 9

std::vector 参考页面:

可以使用其中的一些值来构造向量.

你可以尝试:

vector<vector<Distance*> > distanceMatrix(7, vector<Distance*>(7, NULL));
Run Code Online (Sandbox Code Playgroud)

另外,关于你的问题:

vector<vector<Distance*> > distanceMatrix;  
    for (int i = 0; i < 7 ; i++)
        for (int j = 0; j < 7 ; j++)
            distanceMatrix[i][j].push_back(NULL); //1
Run Code Online (Sandbox Code Playgroud)

当您编码第一个到达时//1,distanceMatrix[i]解析为distanceMatrix[0]但您没有调用,distanceMatrix.push_back(vector<Distance*>())因此您指的是未初始化的单元格.

纠正代码应该是:

vector<Distance*> vec;

for (int j = 0; j < 7 ; j++)
  vec.push_back(NULL);

vector<vector<Distance*> > distanceMatrix;

for (int i = 0; i < 7 ; i++)
{
    distanceMatrix.push_back(vec);
}
Run Code Online (Sandbox Code Playgroud)

这比我的第一个建议还要糟糕得多.