二维vector的初始化,使用二维vector时:vector subscript out of range

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

 

おすすめ

転載: blog.csdn.net/t18438605018/article/details/119889282