C++ 在C+;中,如何将2D数组/向量作为函数参数传递+;?
尝试使用全局声明,但这对我没有用处。C++ 在C+;中,如何将2D数组/向量作为函数参数传递+;?,c++,2d-vector,C++,2d Vector,尝试使用全局声明,但这对我没有用处。int-connection(vector&gridOfNodes,int-m,int-n) int connection(vector< vector<int>> &gridOfNodes,int m,int n) { //Your code goes here //Accessing Vector sample if(gridOfNodes[i][j] == 1) { } } int main() { i
int-connection(vector&gridOfNodes,int-m,int-n)
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;
}
{
//你的密码在这里
//访问向量样本
if(gridOfNodes[i][j]==1)
{
}
}
int main()
{
int n,m;
cin>>n>>m;
//初始化向量
向量vec(n,向量(m,0));
对于(int i=0;i>vec[i][j];
//函数调用
coutint连接(向量&网格节点,int m,int n)
{
//你的密码在这里
//访问向量样本
if(gridOfNodes[i][j]==1)
{
}
}
int main()
{
int n,m;
cin>>n>>m;
//初始化向量
向量vec(n,向量(m,0));
对于(int i=0;i>vec[i][j];
//函数调用
cout2D数组:
如果您不想在全局范围内定义它(第二个维度或两者都是const
),那么我假设您的函数在main()
或其他函数的局部范围内-如果是,那么只需定义维度并使用:
函数(int数组[dim1][dim2])
或
函数(int数组[][dim2],int dim1)
2D向量:
函数(std::vectorcont&vec)
向量数组:
函数(std::arrayconst&vecarray)
请注意,仅当通过引用传递2D向量时才需要使用const
说明符。如果通过值传递2D向量,则将制作副本,并且不会修改原始2D向量。(例如,当您从函数返回某些内容时,不必担心函数体中的值发生了更改)2D数组:
如果您不想在全局范围内定义它(第二个维度或两者都是const
),那么我假设您的函数在main()
或其他函数的局部范围内-如果是,那么只需定义维度并使用:
函数(int数组[dim1][dim2])
或
函数(int数组[][dim2],int dim1)
2D向量:
函数(std::vectorcont&vec)
向量数组:
函数(std::arrayconst&vecarray)
请注意,仅当通过引用传递2D向量时才需要使用const
说明符。如果通过值传递2D向量,则将制作副本,并且不会修改原始2D向量。(对于这样的情况,例如当您从函数返回某个内容时,不必担心其值在函数体中更改)还值得在参数中添加一些缩进和const
以避免意外突变。还值得在参数中添加一些缩进和const
以避免意外突变。出于多种原因,您应该避免全局声明。如果要在另一个函数中使用某个函数的某些属性,请传递属性作为该函数的参数。这是否回答了您的问题?出于许多原因,您应该避免全局声明。如果您希望在另一个函数中使用某个函数的某些属性,请将该属性作为参数传递给该函数。这是否回答了您的问题?