c++使用vector创建二维数组并指定大小

Yohoc / 2023-05-18 / 原文

1、在C++中,可以这样初始化一个二维vector数组并指定大小:
cpp
vector<vector<int>> vec(3, vector<int>(4));
这个代码会创建一个3行4列的二维vector数组,每个元素初始化为0:vec = 
[0 0 0 0]
[0 0 0 0] 
[0 0 0 0]
 
 
2、你也可以在初始化时指定每个元素的值:
cpp
vector<vector<int>> vec(3, vector<int>(4, 1)); 
这个会创建一个3行4列的二维vector,每个元素初始化为1:vec = 
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
 
 
3、如果你想指定每个vector的大小,并手动初始化每个元素,可以这样写:
cpp
vector<vector<int>> vec;
vec.resize(3);        // 3行

vec[0].resize(4);     // 第一行4列
vec[0] = {1, 2, 3, 4};

vec[1].resize(2);     // 第二行2列 
vec[1] = {5, 6};  

vec[2].resize(3);     // 第三行3列
vec[2] = {7, 8, 9}; 
这个会创建:
vec =  
[1 2 3 4]
[5 6 0 0] 
[7 8 9 0]
 
 
总结
所以总结一下,初始化一个二维vector数组并指定大小的方法有:
1. vector<vector<int>> vec(行数, vector<int>(列数)); 
2. vector<vector<int>> vec(行数, vector<int>(列数, 初始值));
3. vector<vector<int>> vec; vec.resize(行数); vec[i].resize(列数); vec[i] = {值};