当我尝试在 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);
我正在为作业创建一个 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);