我想用“vector ”创建一个矩阵:
vector < vector <int> > Mat;
问题是,当我运行这段代码时:
int i ,j;
for(i = 1 ; i <= 5 ; ++i)
for(j = 1 ; j <= 5 ; ++j)
Mat[i][j] = 0;
我会得到一个非常讨厌的错误。我该如何解决?
我不想这样阅读矩阵:
for(i = 1 ; i <= 5 ; ++i)
for(j = 1 ; j <= 5 ; ++j)
M[i].push_back(0);
最佳答案
当您以这种方式创建 vector 时,它们的维度为 0。您必须使用合适的大小来初始化它们:
vector < vector <int> > Mat(6, std::vector<int>(6));
顺便说一句,在第二个 vector 初始化中添加一个 0 将确保它会被 0 填充:
vector < vector <int> > Mat(6, std::vector<int>(6, 0));
关于c++ - 使用 STL vector 创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898528/