c++ - 将二维数组传递给 c++ 中的函数,两个值都在 main 方法中输入

标签 c++ arrays

#include <bits/stdc++.h>
using namespace std;
int M;
int N;
int K;
int temp=0;
void leftrotate(int A[M][N])
{

    for(int i=0;i<M;i++)
    {
        temp=A[i][0];
        int j;
        for(j=0;j<N-1;j++)
        {
            A[i][j]=A[i][j+1];
        }
        A[i][j]=temp;
    }

    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            cout<<A[i][j];
        }
    }
}
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        cin>>M;
        cin>>N;
        cin>>K;
        int A[M][N];
        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
            {

                cin>>A[i][j];
            }
        }
        leftrotate(A);
    }
    return 0;
}

正如您在 main 函数中看到的,m 和 n 的值是动态获取的,所有变量都是全局定义的。现在我需要使用二维数组作为参数调用函数 leftrotate。 使用或不使用指针的方法是什么?

最佳答案

对于多维动态数组,您可以使用:

vector<vector<int>> A

int **A

示例:

void leftrotate(int **A)
{

    for(int i=0;i<M;i++)
    {
        temp=A[i][0];
        int j;
        for(j=0;j<N-1;j++)
        {
            A[i][j]=A[i][j+1];
        }
        A[i][j]=temp;
    }

    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            cout<<A[i][j];
        }
    }
}
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        cin>>M;
        cin>>N;
        cin>>K;
        int **A = new int*[M];
            for(int i = 0; i < M; i++)
                A[i] = new int[N];

        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
            {

                int p;
                cin>>p;
                A[i][j] = p;
            }
        }
        leftrotate(A);

        for(int i = 0; i < M; ++i) {
            delete [] A[i];
        }
        delete [] A;
    }
    return 0;
}

关于c++ - 将二维数组传递给 c++ 中的函数,两个值都在 main 方法中输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430574/

相关文章:

c++ - 如何将关联数组从 Node.js C++ 插件传递到 js 代码?

javascript - 如何传递数组并在 React Lifecycle 中访问它

Python:如何打印非字符串数组?

javascript - 将 PHP 数组解析为 Javascript 的最佳方法是什么?

arrays - 在 Python 3 中创建排行榜,排行榜必须从高到低排序

c++ - 在数据写入磁盘之前 fwrite 是否会阻塞?

c++ - Qt 中的所有权是对还是错

c++ - Visual Studio 2012 可以将 C++ 代码反向工程为 UML 图吗?

c++ - 如何自动化鼠标操作

python - 矩阵和数组的 NumPy 点积