如何在C++中反转数组?
时间: 2024-09-26 17:05:04 浏览: 11
在C++中,反转数组可以使用两种常见的方法:迭代法和递归法。这里我们给出两种方法的示例:
### 1. 迭代法
```cpp
#include <iostream>
#include <algorithm>
void reverseArray(int arr[], int start, int end) {
while (start < end) {
std::swap(arr[start], arr[end]);
start++;
end--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
std::cout << "Original Array: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
reverseArray(arr, 0, size - 1);
std::cout << "\nReversed Array: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
运行此程序会得到反转后的数组。
### 2. 递归法
```cpp
#include <iostream>
void reverseArrayRecursively(int arr[], int start, int end) {
if (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverseArrayRecursively(arr, start + 1, end - 1);
}
}
// 主函数和前面一样
int main() {
// ...省略主函数部分...
reverseArrayRecursively(arr, 0, size - 1);
return 0;
}
```
递归法可能会消耗更多栈空间,所以对于大型数组可能会有性能上的考虑。