C++用指针实现矩阵转置代码
时间: 2024-12-22 17:27:38 浏览: 9
在C++中,你可以使用指针来实现矩阵转置。这里提供一个简单的例子,假设我们有一个二维数组(即矩阵),我们可以创建两个指针分别指向原矩阵的行和列,并通过交换它们的位置来进行转置。以下是代码片段:
```cpp
#include <iostream>
// 矩阵尺寸
const int ROWS = 3;
const int COLS = 4;
// 定义矩阵结构体
struct Matrix {
int data[ROWS][COLS];
};
// 指针函数,接受矩阵的地址并返回转置后的矩阵地址
Matrix transpose(Matrix* matrix) {
Matrix transposed;
for(int i = 0; i < ROWS; ++i) {
for(int j = 0; j < COLS; ++j) {
transposed.data[j][i] = matrix->data[i][j]; // 交换行和列
}
}
return transposed;
}
int main() {
Matrix original = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12} };
Matrix* transposedMatrix = &transpose(&original);
// 打印转置后的矩阵
for(int i = 0; i < COLS; ++i) {
for(int j = 0; j < ROWS; ++j) {
std::cout << transposedMatrix->data[i][j] << " ";
}
std::cout << "\n";
}
return 0;
}
```
在这个代码中,`transpose()` 函数接收一个指向矩阵的指针,然后返回一个新的矩阵,其中的元素已经被转置了。
阅读全文