定义一个函数模板,该函数的功能是将一维数组a中的元素逆序,写出代码示例
时间: 2023-11-22 22:52:56 浏览: 122
以下是将一维数组逆序的函数模板:
```c++
template<typename T>
void reverseArray(T *a, int n) {
for(int i = 0; i < n / 2; i++) {
T temp = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = temp;
}
}
```
其中,`T` 为数组元素的类型,`a` 为数组名,`n` 为数组长度。该函数使用了模板来实现通用性,可以适用于不同类型的数组元素。
以下是示例代码:
```c++
#include <iostream>
using namespace std;
template<typename T>
void reverseArray(T *a, int n) {
for(int i = 0; i < n / 2; i++) {
T temp = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = temp;
}
}
int main() {
int a[] = {1, 2, 3, 4, 5};
reverseArray(a, 5);
for(int i = 0; i < 5; i++) {
cout << a[i] << " ";
}
return 0;
}
```
上述示例代码将输出:`5 4 3 2 1`。
相关问题
定义一个函数模板,该函数功能是将一维数组a中的元素逆序
好的,以下是一个将一维数组逆序的函数模板:
```c++
template<typename T, size_t N>
void reverse_array(T (&a)[N])
{
for (size_t i = 0; i < N / 2; ++i) {
std::swap(a[i], a[N - i - 1]);
}
}
```
该函数模板使用了两个模板参数:类型参数 `T` 和非类型参数 `N`。其中,`T` 表示数组元素的类型,`N` 表示数组的大小。
函数模板中使用了数组的引用作为参数,这样可以避免数组退化成指针。在函数体内,使用循环和 `std::swap()` 函数将数组元素逆序。
使用该函数模板的示例代码如下:
```c++
int a[] = {1, 2, 3, 4, 5};
reverse_array(a);
for (int i = 0; i < 5; ++i) {
std::cout << a[i] << " ";
}
// 输出:5 4 3 2 1
```
定义一个函数模板,该函数的功能是将一维数组a中的元素逆序
好的,下面是一个将一维数组逆序的函数模板:
```c++
template<typename T>
void reverseArray(T a[], int size){
for(int i=0; i<size/2; i++){
T temp = a[i];
a[i] = a[size-i-1];
a[size-i-1] = temp;
}
}
```
这个函数模板接受一个一维数组和数组大小作为参数,然后使用一个循环将数组中元素逆序。在循环中,我们使用一个临时变量来交换数组中两个元素的值。这里使用了模板来支持不同类型的数组,因为我们不知道调用这个函数时会传入什么类型的数组。
阅读全文