编写一个程序,使用类模板对数组元素进行倒序。 主程序如下(不能修改) int main() { int n; cin >> n; Array<int> a(n); a.input(); a.reverse(); a.output(); Array<double> b(n); b.input(); b.reverse(); b.output(); return 0; } 输入 首先输入数组大小n,然后再输入n个整数,
时间: 2024-03-08 19:48:01 浏览: 95
以下是使用类模板对数组元素进行倒序的程序:
```c++
#include <iostream>
using namespace std;
template<typename T>
class Array {
private:
T *arr;
int size;
public:
Array(int n) {
size = n;
arr = new T[size];
}
~Array() {
delete[] arr;
}
void input() {
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
void reverse() {
for (int i = 0; i < size / 2; i++) {
T temp = arr[i];
arr[i] = arr[size - 1 - i];
arr[size - 1 - i] = temp;
}
}
void output() {
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
int main() {
int n;
cin >> n;
Array<int> a(n);
a.input();
a.reverse();
a.output();
Array<double> b(n);
b.input();
b.reverse();
b.output();
return 0;
}
```
在这个程序中,我们首先定义了一个类模板 `Array<T>`,其中 `T` 是数组元素的类型。在类模板中,我们定义了一个私有变量 `arr`,它是一个指向 `T` 类型的指针,用于存储数组元素;同时,我们还定义了一个 `size` 变量,用于存储数组大小。
在类模板中,我们实现了四个公有函数:构造函数 `Array(int n)`、析构函数 `~Array()`、输入函数 `input()` 和输出函数 `output()`。
在 `main()` 函数中,我们首先读入数组大小 `n`,然后定义了两个数组对象 `a` 和 `b`,分别用于存储整型和双精度浮点型数组元素。接着,我们调用了 `input()` 函数,读入数组元素,然后调用了 `reverse()` 函数,对数组元素进行倒序操作,最后调用了 `output()` 函数,输出倒序后的数组元素。
注意,在模板类的定义中,我们使用了 `typename` 关键字来声明 `T` 是一个类型参数。在模板类的实现中,我们使用了 `T` 来代表数组元素类型,并且使用 `T*` 来声明一个指向 `T` 类型的指针。这样,我们就可以在一个类模板中定义一个可以适用于不同类型的数组类了。
阅读全文