C++ 将多维向量(矩阵)传递给C+中的函数+;

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){

我在将多维数组从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){
    // 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**!!如果你认为它解决了你的问题,请给出答案。它将帮助整个社区识别正确的解决方案。这可以通过单击旁边的绿色复选标记来完成答案。看这个作为参考。干杯。好的,是的,这完全有意义。好的,是的,这完全有意义。