当我尝试在 C++ 中的函数中插入值时,为什么不能将值插入到二维向量中?

Why cant I insert values into 2D vector when I try to do it in a function in C++?

我正在为作业创建一个 C++ 小程序。我正在尝试填充一个 2D 向量,但是当我写 matriz[iA][iB]=iNum;它给了我错误 "no match for 'operator='"

#include <iostream>
#include <algorithm>
#include <math.h>
#include <fstream>
#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <iomanip>
#include <set>
#include <vector>
#include <map>



using namespace std;

void popularMatriz(int iTamano, vector<vector<int>> *matriz){

    for(int iA=0; iA<iTamano; iA++){
        for(int iB=0; iB>iTamano; iB++){
            int iNum;
            scanf("%d", &iNum );
            matriz[iA][iB]=iNum;
        }
    }
}

int main(){

    int iTamano;

    scanf("%d", &iTamano);

    vector<vector<int>> matriz(iTamano, vector<int>(iTamano));
    matriz[2][2]=5;

    popularMatriz(iTamano, &matriz);

    return 0;
}

您正在指向 matriz。改为这样做:

(*matriz)[iA][iB]=iNum;

您正在传递指向 matriz 的指针;所以使用它是错误的

matriz[iA][iB]=iNum;

我建议你传递它作为参考;我的意思是,将 popularMatriz() 定义为

void popularMatriz(int iTamano, vector<vector<int>> & matriz)

并且在没有 &

的情况下调用它
popularMatriz(iTamano, matriz);