二维vector的初始化,使用二维vector时:vector subscript out of range
程序员文章站
2022-03-21 20:40:44
...
1.错误代码:
vector<vector<int>> dp;
dp[i][j] = 1
2.错误原因
二维vector,一定要只有初始化后,才能按二维数组dp[i][j]的样式访问。
3.二维vector的初始化
方法1:
采用构造函数 vector<vector<int>> dp(n, vector<int>(m)); //n行m列,全部初始化为零
方法2:
直接初始化: vector<vector<int>> dp={{1,2,3},{4,5},{6},{7,8,9}};
此时dp[0]={1,2,3},dp[0][1]=2.
方法3:
vector<int> in;
vector<vector<int>> dp;
int n,m;//n和m可以是常量,也可以是变量。
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
in.push_back(0);
dp.push_back(in);
}