定义一个函数模板,该函数的功能是将数组a中的n元素逆序。
时间: 2024-02-23 09:02:43 浏览: 64
下面是一个可以将数组逆序的函数模板:
```c++
template<typename T>
void reverseArray(T* a, int n) {
for (int i = 0, j = n - 1; i < j; i++, j--) {
T tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
```
该函数模板接收一个指向数组首元素的指针和数组的长度,将数组逆序并存回原数组中。可以适用于任何类型的数组,包括整型、浮点型、字符型等等。
相关问题
定义一个函数模板,该函数的功能是将数组a中的n元素逆序。
好的,这里是一个定义数组逆序的函数模板:
```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 - 1 - i];
a[n - 1 - i] = temp;
}
}
```
这个函数模板接受一个指向数组的指针 `a`,以及数组的大小 `n`。它使用一个简单的循环将数组中的元素逆序,注意到这里使用了 `T` 作为类型参数,因此这个函数模板可以用于任何类型的数组。
定义一个函数模板,该函数的功能是将数组a中的元素逆序。
可以定义以下的函数模板来实现这个功能:
```c++
template <typename T, size_t N>
void reverseArray(T (&a)[N]) {
for (size_t i = 0; i < N / 2; ++i) {
std::swap(a[i], a[N - i - 1]);
}
}
```
这个函数模板接受一个数组的引用作为参数,并且使用 `std::swap()` 函数交换数组的元素来实现逆序。需要注意的是,这个函数模板使用了数组的大小 `N` 作为模板参数,因此在调用函数时不需要显式地指定数组的大小。例如,可以这样调用这个函数:
```c++
int a[] = {1, 2, 3, 4, 5};
reverseArray(a);
```
这个函数模板可以处理任何类型的数组,只要这些类型支持 `std::swap()` 函数即可。
阅读全文