【发布时间】:2020-04-02 18:36:20
【问题描述】:
尝试使用全局声明,但这对我没有用。
【问题讨论】:
-
出于多种原因,您应该避免使用全局声明。如果您想在另一个函数中使用一个函数的某些属性,请将属性作为参数传递给该函数。
-
这能回答你的问题吗? Passing a 2D array to a C++ function
尝试使用全局声明,但这对我没有用。
【问题讨论】:
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;
}
【讨论】:
const 以避免意外突变。
二维数组:
如果您不希望在全局范围内定义它(第二维或两者都为 const),那么我假设您的函数在 main() 或其他函数的本地范围内 - 如果是的,那么只需定义尺寸并使用:
function(int array[dim1][dim2])
或
function(int array[][dim2], int dim1)
二维向量:
function(std::vector<std::vector<int>>const &vec)
向量数组:
function(std::array<std::vector<int>>const &vecarray)
请注意,仅当您通过引用传递 2D 向量时才需要使用 const 说明符。如果您按值传递它,将制作副本并且您的原始 2D 矢量将不会被修改。 (例如,当您从函数返回某些内容而不必担心其值在函数体内发生更改时)
【讨论】: