c++ - 使用 STL vector 创建矩阵

标签 c++ matrix vector stl

我想用“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/

相关文章:

java - 通用简单 3D 矩阵旋转问题

c++ - 保持常量的指针 vector

opengl - U-V-N相机坐标系如何用OpenGL解释?

c++ - 当 std::vector 增长时,其中元素的地址是否不再有效?

matlab - 在 matlab 中可视化大矩阵

c++ - 如何在 C++ 矩阵 2D 的其他对角线上找到平行对角线反转

r - 将向量的系数添加到矩阵

c++ - C++17 标准对 nullptr 调用 delete 有何规定?

C++ 二叉树适用于 CentOS 6 但不适用于 Mac OSX Mavericks

c++ - 带有图形的 UI 蒙皮