我正在为家庭作业编写一个小的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;