[题目] 设a为M行N列的二维数组,编程将a中的行和列交换, 交换后的数组仍然存放在a中,试建立一个类TDarray,完成以上操作。用c++完成
时间: 2024-04-14 21:27:09 浏览: 52
numpy.ndarray 交换多维数组(矩阵)的行/列方法
5星 · 资源好评率100%
[回答] 好的,请稍等一下,我会编写一个类TDarray来完成这个操作。以下是C++的代码示例:
```cpp
#include <iostream>
#include <vector>
class TDarray {
private:
int rows;
int cols;
std::vector<std::vector<int>> array;
public:
TDarray(int m, int n) : rows(m), cols(n) {
array.resize(rows, std::vector<int>(cols, 0));
}
void swapRowsCols() {
std::vector<std::vector<int>> newArray(cols, std::vector<int>(rows, 0));
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
newArray[j][i] = array[i][j];
}
}
array = newArray;
std::swap(rows, cols);
}
void printArray() {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << array[i][j] << " ";
}
std::cout << std::endl;
}
}
};
int main() {
TDarray a(3, 4);
a.printArray();
a.swapRowsCols();
std::cout << "交换后的数组:" << std::endl;
a.printArray();
return 0;
}
```
这个类TDarray拥有两个私有成员变量:rows(行数)和cols(列数),以及一个二维向量array来存放数据。它还提供了一个swapRowsCols方法,用于交换行和列,并在原数组上进行修改。最后,它还提供了一个printArray方法,用于打印数组。
在示例中,我们创建了一个3行4列的二维数组,并初始化为0。然后我们先打印出原始数组,然后调用swapRowsCols方法进行交换操作,最后再打印出交换后的数组。你可以根据需要修改输入的数组大小和内容。
请注意,以上代码是C++的示例,你可以在自己的C++环境中运行它。
阅读全文