为什么我不能在C+;中的函数中插入值到2D向量中+;? 我正在创建一个小的C++程序,用于家庭作业。我试图填充一个2D向量,但当我写matriz[iA][iB]=iNum时;它给了我一个错误“与‘运算符=’不匹配” #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; void popularMatriz(int iTamano,vector*matriz){ for(int iA=0;iAiTamano;iB++){ 国际单位制; scanf(“%d”和“iNum”); 矩阵[iA][iB]=iNum; } } } int main(){ 伊塔马诺国际酒店; scanf(“%d”&iTamano); 向量矩阵(iTamano,向量(iTamano)); matriz[2][2]=5; 普罗马特里兹(伊塔马诺和马特里兹); 返回0; }

为什么我不能在C+;中的函数中插入值到2D向量中+;? 我正在创建一个小的C++程序,用于家庭作业。我试图填充一个2D向量,但当我写matriz[iA][iB]=iNum时;它给了我一个错误“与‘运算符=’不匹配” #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; void popularMatriz(int iTamano,vector*matriz){ for(int iA=0;iAiTamano;iB++){ 国际单位制; scanf(“%d”和“iNum”); 矩阵[iA][iB]=iNum; } } } int main(){ 伊塔马诺国际酒店; scanf(“%d”&iTamano); 向量矩阵(iTamano,向量(iTamano)); matriz[2][2]=5; 普罗马特里兹(伊塔马诺和马特里兹); 返回0; },c++,c++11,multidimensional-array,stl,stdvector,C++,C++11,Multidimensional Array,Stl,Stdvector,您正在使用指向matriz的指针。改为这样做: (*matriz)[iA][iB]=iNum; 您正在传递一个指向matriz的指针;那么,将其用作 matriz[iA][iB]=iNum; 我建议你把它作为参考;我的意思是,将popularMatriz()定义为 void popularMatriz(int iTamano, vector<vector<int>> & matriz) 将matriz更改为引用。我尝试过这样做,但当我运行它时,函数不会运行。

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

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

您正在传递一个指向
matriz
的指针;那么,将其用作

matriz[iA][iB]=iNum;
我建议你把它作为参考;我的意思是,将
popularMatriz()
定义为

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

matriz
更改为引用。我尝试过这样做,但当我运行它时,函数不会运行。它跳过了它。我能做什么?@EduardoDeLaGarza启动你的程序,逐步完成这个功能。当你看到打字错误时,你可能会感到尴尬。@EduardoDeLaGarza-我想这是(intib=0;iB>iTamano;iB++)的
;尝试用
iB
(正如格里格所指出的那样)@EduardoDeLaGarza-en passant:
matriz[2][2]=5来更改
iB>iTamano
iTamano>2
当我读到它时,我真的开始笑了,那么code>是非常非常危险的!非常感谢你!不知怎的,我的调试器没有进入函数,所以我看到它跳过了它。再次感谢!谢谢我试过了,但当我这样做并运行它时,它会忽略函数并跳过它。我能做什么?您在
中有一个错误(intib=0;iB>iTamano;iB++)
。应该是
iB
void popularMatriz(int iTamano, vector<vector<int>> & matriz)
popularMatriz(iTamano, matriz);