iva*_*ian 1 c++ stl vector matrix
我想用"vector"创建一个矩阵:
vector < vector <int> > Mat;
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行此代码时:
int i ,j;
for(i = 1 ; i <= 5 ; ++i)
for(j = 1 ; j <= 5 ; ++j)
Mat[i][j] = 0;
Run Code Online (Sandbox Code Playgroud)
我会得到一个非常讨厌的错误.我该如何解决这个问题?
我不想这样读取矩阵:
for(i = 1 ; i <= 5 ; ++i)
for(j = 1 ; j <= 5 ; ++j)
M[i].push_back(0);
Run Code Online (Sandbox Code Playgroud)
当您以这种方式创建向量时,它们的维度为0.您必须使用良好的大小初始化它们:
vector < vector <int> > Mat(6, std::vector<int>(6));
Run Code Online (Sandbox Code Playgroud)
顺便说一句,在第二个向量初始化中添加0将确保它将填充0:
vector < vector <int> > Mat(6, std::vector<int>(6, 0));
Run Code Online (Sandbox Code Playgroud)