为什么我不能插入值到2D矢量当我试图做它在一个函数在c++

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

本文关键字:c++ 函数 一个 插入 不能 2D 为什么      更新时间:2023-10-16

我正在为家庭作业编写一个小的c++程序。我试着填充一个二维向量但是当我写矩阵[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;

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

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

,不含&

popularMatriz(iTamano, matriz);

您正在使用指向matriz的指针。这样做:

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