我们如何在C++中传递2D数组/向量作为函数参数



尝试使用全局声明,但这对我没有用处。

int connection(vector< vector<int>> &gridOfNodes,int m,int n)
{
//Your code goes here
//Accessing Vector sample
if(gridOfNodes[i][j] == 1)
{
}
}

int main() 
{ 

int n,m;
cin>>n>>m;
// initialize Vector
vector<vector<int> > vec( n , vector<int> (m, 0));
for (int i = 0; i < n; i++) 
for (int j = 0; j < m; j++)
cin>>vec[i][j]; 
//Function calling 
cout << connection(vec,m,n);
return 0; 
}

2D阵列:

如果你不希望它(第二个维度或两者都定义为const(在全局范围内,那么我假设你的函数在main()或其他函数的本地范围内-如果是,那么只定义维度并使用:

function(int array[dim1][dim2])

function(int array[][dim2], int dim1)

2D矢量:

function(std::vector<std::vector<int>>const &vec)

矢量阵列:

function(std::array<std::vector<int>>const &vecarray)

请注意,只有通过引用传递2D矢量时,才需要使用const说明符。如果按值传递,则会生成副本,并且不会修改原始2D矢量。(例如,当您从函数中返回某个内容,而不必为其值在函数体内的更改而烦恼时(

最新更新