swap函数数组逆序排列c++
时间: 2024-06-14 19:07:08 浏览: 93
以下是使用swap函数进行数组逆序排列的C++代码示例:
```cpp
#include <iostream>
using namespace std;
const int N = 10002;
void swapArray(int a[], int n) {
for (int i = 1; i <= n / 2; i++) {
swap(a[i], a[n + 1 - i]);
}
}
int main() {
int a[N], n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
swapArray(a, n);
for (int i = 1; i <= n; i++) {
cout << a[i] << " ";
}
return 0;
}
```
相关问题
运用函数进行C++数组的逆序排列
在C++中,你可以通过递归或者迭代的方式来对数组进行逆序排列。这里提供一种常见的迭代方法,即使用双指针技术:
```cpp
#include <iostream>
void reverseArray(int arr[], int start, int end) {
if (start < end) { // 如果指针未相遇
// 交换当前位置的元素
std::swap(arr[start], arr[end]);
// 逐步向中心移动指针
reverseArray(arr, start + 1, end - 1);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Original array: ";
for (int i : arr) {
std::cout << i << " ";
}
reverseArray(arr, 0, n - 1); // 调用函数逆序
std::cout << "\nReversed array: ";
for (int i : arr) {
std::cout << i << " ";
}
return 0;
}
```
这个`reverseArray`函数接收一个数组、起始索引和结束索引作为参数。它首先检查起始和结束指针是否交错,如果未交错则交换它们指向的元素,并递归地对剩余部分进行同样的操作。
设计一个函数模板,将一维数组 逆序
好的,下面是一个将一维数组逆序的函数模板:
```c++
template <typename T, size_t N>
void reverseArray(T (&arr)[N]) {
for (size_t i = 0; i < N / 2; ++i) {
std::swap(arr[i], arr[N - i - 1]);
}
}
```
这个函数模板接受一个一维数组的引用作为参数,使用 `std::swap` 函数将数组中的元素逆序排列。由于数组的大小是在编译时就确定的,因此我们可以使用模板的非类型参数 `N` 表示数组的大小。
阅读全文