欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二维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);
    }