如何用默认值填充"std::vector<std::vector<T> >"?

How to fill `std::vector<std::vector<T> >` with default values?

本文关键字:vector lt std gt 默认值 填充 何用      更新时间:2023-10-16

所以我试着:

std::vector< std::vector<int> > matrix(4);
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;
matrix[0][3] = 1;
matrix[1][0] = 1;
matrix[1][1] = 2;
matrix[1][2] = 3;
matrix[1][3] = 1;
matrix[2][0] = 1;
matrix[2][1] = 2;
matrix[2][2] = 3;
matrix[2][3] = 1;
matrix[3][0] = 1;
matrix[3][1] = 2;
matrix[3][2] = 3;
matrix[3][3] = 1;

但是出了问题,我的应用程序在运行时死亡=(怎么办?如何嵌入值到向量的向量正确?

使用

std::vector< std::vector<int> > matrix(4, std::vector<int>(4));

std::vector<int>(4)的4个副本初始化外部向量。

在这种情况下,您可以进一步采用Björn的方法,并使用您提供的值完全初始化2D向量:

std::vector<int> tmp(4,0); 
tmp[0] = 1;
tmp[1] = 2;
tmp[2] = 3;
tmp[3] = 1;
std::vector< std::vector<int> > matrix(4, tmp);

可以简单地写成:

std::vector<int> tmp(4,1); 
tmp[1] = 2;
tmp[2] = 3;
std::vector< std::vector<int> > matrix(4, tmp);