C++ 将多维向量(矩阵)传递给C+中的函数+;
我在将多维数组从main传递到函数时遇到问题。以下是问题的一个示例:C++ 将多维向量(矩阵)传递给C+中的函数+;,c++,c++11,multidimensional-array,vector,C++,C++11,Multidimensional Array,Vector,我在将多维数组从main传递到函数时遇到问题。以下是问题的一个示例: double function(int**); int main(){ vector< vector<int> > my_vec; double result; result = funtion(my_vec); //it doesnt recognize the type. my vec return 0; } double function(int**my_vec){
double function(int**);
int main(){
vector< vector<int> > my_vec;
double result;
result = funtion(my_vec); //it doesnt recognize the type. my vec
return 0;
}
double function(int**my_vec){
// DOES STUFF WITH THE DATA
}
双功能(int**);
int main(){
vectormy_vec;
双重结果;
result=function(my_vec);//它无法识别类型。my vec
返回0;
}
双功能(int**my\U vec){
//他会处理数据
}
将矩阵传递给函数的正确方法是什么
将矩阵传递给函数的正确方法是什么
将函数的签名更改为:
double function(vector< vector<int> >& my_vec);
双功能(vector我的vec);
将矩阵传递给函数的正确方法是什么
将函数的签名更改为:
double function(vector< vector<int> >& my_vec);
双功能(vector我的vec);
接受参数的正确方法是:
double function(vector<vector<int>> const &);
double函数(向量常数&);
除非函数需要修改参数,在这种情况下,请使用:
double function(vector<vector<int>> &);
double函数(向量&);
>代码> int */COD>类型签名是针对原始C样式数组:这里没有理由丢弃有用的C++容器。
< P>接受该论点的正确方式是:
double function(vector<vector<int>> const &);
double函数(向量常数&);
除非函数需要修改参数,在这种情况下,请使用:
double function(vector<vector<int>> &);
double函数(向量&);
>代码> int */COD>类型签名是针对原始C样式数组:没有理由丢弃有用的C++容器。
STD::向量不仅仅是数组。它是STL类型,模拟动态阵列。您传递的是简单的2D数组,如int-arr[3][3]
。要传递向量,您需要将函数头更改为双函数(vector&vec)
(或者可能是双函数(vectorvec)
-取决于您想要做什么)Std::vector不仅仅是一个数组。它是STL类型,模拟动态阵列。您传递的是简单的2D数组,如int-arr[3][3]
。要传递向量,您需要将函数头更改为double function(vector&vec)
(或者可能是double function(vectorvec)
-取决于您要执行的操作)重新定义函数以通过引用获得正确的类型。这两种类型(int**
和std::vector
简直是天壤之别。你绝对是对的!!现在我知道了答案,我不知道为什么我要尝试int**!!如果你认为它解决了你的问题,请给出答案。它将帮助整个社区识别正确的解决方案。这可以通过单击旁边的绿色复选标记来完成答案。请参阅此以供参考。干杯。重新定义函数以通过引用获取正确的类型会浮现在脑海中。这两种类型(int**
和std::vector
简直是天壤之别。你绝对是对的!!现在我知道了答案,我不知道为什么我要尝试int**!!如果你认为它解决了你的问题,请给出答案。它将帮助整个社区识别正确的解决方案。这可以通过单击旁边的绿色复选标记来完成答案。看这个作为参考。干杯。好的,是的,这完全有意义。好的,是的,这完全有意义。