21xrx.com
2024-05-20 16:28:38 Monday
登录
文章检索 我的文章 写文章
C++数组转置:实现方法和示例代码
2023-07-12 15:32:53 深夜i     --     --
C++ 数组 转置 实现方法 示例代码

C++数组转置是指将一个二维数组的行列交换,即矩阵转置。在实际应用中,经常需要对数据进行重新排列,而矩阵转置是其中一种常见的操作。

实现方法:

对于一个MxN的数组A,转置后得到的数组是NxM的数组B。常见的实现方法有两种:

1. 直接交换元素

遍历原数组,将A[i][j]赋值给B[j][i],即可实现转置。

代码示例:


void transpose(int A[][MAXN], int B[][MAXN], int m, int n)

{

  for (int i = 0; i < m; i++) {

    for (int j = 0; j < n; j++) {

      B[j][i] = A[i][j];

    }

  }

}

2. 分配新数组

先创建一个NxM的新数组B,然后将A的行复制到B的列中,即可实现转置。

代码示例:


void transpose(int A[][MAXN], int B[][MAXN], int m, int n)

{

  for (int i = 0; i < n; i++) {

    for (int j = 0; j < m; j++) {

      B[i][j] = A[j][i];

    }

  }

}

示例代码:


#include <iostream>

#define MAXN 10

using namespace std;

void transpose(int A[][MAXN], int B[][MAXN], int m, int n);

int main()

{

  int A[MAXN][MAXN], B[MAXN][MAXN];

  int m, n;

  cin >> m >> n; // 输入矩阵A的行列数

  for(int i=0;i<m;i++) {

    for(int j=0;j<n;j++) {

      cin >> A[i][j]; // 输入矩阵A的值

    }

  }

  transpose(A, B, m, n); // 转置矩阵A

  for(int i=0;i<n;i++) {

    for(int j=0;j<m;j++) {

      cout << B[i][j] << " "; // 输出转置后的矩阵B

    }

    cout << endl; // 换行

  }

  return 0;

}

void transpose(int A[][MAXN], int B[][MAXN], int m, int n)

{

  for (int i = 0; i < n; i++) {

    for (int j = 0; j < m; j++) {

      B[i][j] = A[j][i];

    }

  }

}

总结:

本文介绍了C++数组转置的实现方法和示例代码,包括直接交换元素和分配新数组两种方法,可以根据需求选择合适的方法实现转置。在实际应用中,矩阵转置是一种非常常见的操作,掌握好转置的实现方法有利于提高程序效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复