我们如何在 C++ 中将二维数组/向量作为函数参数传递? [复制]
Posted
技术标签:
【中文标题】我们如何在 C++ 中将二维数组/向量作为函数参数传递? [复制]【英文标题】:How can we pass a 2D array/vector as a function parameter in C++? [duplicate] 【发布时间】:2020-04-02 18:36:20 【问题描述】:尝试使用全局声明,但这对我没有用。
【问题讨论】:
出于多种原因,您应该避免使用全局声明。如果您想在另一个函数中使用一个函数的某些属性,请将属性作为参数传递给该函数。 这能回答你的问题吗? Passing a 2D array to a C++ function 【参考方案1】: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
以避免意外突变。【参考方案2】:
二维数组:
如果您不希望在全局范围内定义它(第二维或两者都为 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 矢量将不会被修改。 (例如,当您从函数返回某些内容而不必担心其值在函数体内发生更改时)
【讨论】:
以上是关于我们如何在 C++ 中将二维数组/向量作为函数参数传递? [复制]的主要内容,如果未能解决你的问题,请参考以下文章