C++编写一个模板函数程序,将数组内容倒置,调用函数时,数组类型可以是整型也可以是双精度型。
时间: 2024-05-08 08:21:57 浏览: 58
函数指针与函数指针数组,多层
下面是一个实现数组内容倒置的模板函数程序:
```cpp
#include <iostream>
template <typename T>
void reverseArray(T arr[], int size) {
for (int i = 0; i < size / 2; i++) {
T temp = arr[i];
arr[i] = arr[size - i - 1];
arr[size - i - 1] = temp;
}
}
int main() {
int intArr[] = {1, 2, 3, 4, 5};
double doubleArr[] = {1.1, 2.2, 3.3, 4.4, 5.5};
// 倒置整型数组
reverseArray(intArr, 5);
for (int i = 0; i < 5; i++) {
std::cout << intArr[i] << " ";
}
std::cout << std::endl;
// 倒置双精度型数组
reverseArray(doubleArr, 5);
for (int i = 0; i < 5; i++) {
std::cout << doubleArr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
5 4 3 2 1
5.5 4.4 3.3 2.2 1.1
```
在模板函数 `reverseArray` 中,我们使用了模板参数 `typename T` 来表示参数类型为 `T`,因此函数可以接受任意类型的数组。函数的实现采用常规的数组倒置方法,即从数组两端开始,对称交换元素,直到交换到数组中间位置。在主函数中,我们分别调用了 `reverseArray` 函数来倒置一个整型数组和一个双精度型数组,输出结果证明该函数可以正确处理不同类型的数组。
阅读全文