编写一个函数,这个函数能用递归法对一个整数数组进行倒置;然后再定义一个重载函 数,该函数能对字符串数组中的字符串进行倒置;最后编写main函数进行调用,并测试结果。
时间: 2025-01-04 16:38:29 浏览: 42
为了实现对整数数组和字符串数组的递归倒置,我们首先需要定义一个通用的递归函数,然后分别重载它以便处理不同类型的数据。以下是相关的代码:
```cpp
#include <iostream>
using namespace std;
// 通用递归函数,用于整数数组和字符串数组
void reverseArray(void* arr, size_t length, size_t elementSize) {
if (length > 1) {
void* temp = static_cast<void*>(arr + length * elementSize); // 获取下一个元素的位置
memmove(arr, temp, length * elementSize); // 交换第一个和最后一个元素
reverseArray(arr, length - 1, elementSize); // 对剩余部分递归调用
}
}
// 整数数组倒置
void reverseIntegerArray(int arr[], int n) {
reverseArray(arr, n, sizeof(int));
}
// 字符串数组倒置
void reverseStringArray(string* strArray, int n) {
reverseArray(strArray, n, sizeof(string)); // 注意这里不需要元素大小,因为每个string占用一个连续的内存块
}
int main() {
// 测试整数数组
int integerArray[] = {1, 2, 3, 4, 5};
int originalLength = sizeof(integerArray) / sizeof(integerArray[0]);
reverseIntegerArray(integerArray, originalLength);
for (int i = 0; i < originalLength; i++) {
cout << integerArray[i] << " ";
}
cout << endl;
// 测试字符串数组
string stringArray[] = {"Hello", "World", "C++"};
int stringLength = sizeof(stringArray) / sizeof(stringArray[0]);
reverseStringArray(stringArray, stringLength);
for (int i = 0; i < stringLength; i++) {
cout << stringArray[i] << " ";
}
cout << endl;
return 0;
}
```
在`main`函数中,我们先对整数数组和字符串数组分别调用了各自的倒置函数,然后打印出倒置后的结果。
阅读全文
相关推荐










