C++语言中如何定义marge函数
时间: 2024-01-27 21:03:25 浏览: 112
在C++语言中,可以使用模板函数来定义merge函数,从而支持不同类型的数组合并操作。以下是一个简单的merge函数的定义和使用示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
vector<T> merge(vector<T>& arr1, vector<T>& arr2) {
vector<T> result;
int i = 0, j = 0;
while (i < arr1.size() && j < arr2.size()) {
if (arr1[i] < arr2[j]) {
result.push_back(arr1[i++]);
} else {
result.push_back(arr2[j++]);
}
}
while (i < arr1.size()) {
result.push_back(arr1[i++]);
}
while (j < arr2.size()) {
result.push_back(arr2[j++]);
}
return result;
}
int main() {
vector<int> arr1 = {1, 3, 5, 7, 9};
vector<int> arr2 = {2, 4, 6, 8, 10};
vector<int> result = merge(arr1, arr2);
cout << "Merged array: ";
for (int i = 0; i < result.size(); i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
```
在上面的例子中,merge函数使用了模板参数T,表示数组中的元素类型。函数接受两个vector类型的数组arr1和arr2,并返回一个新的vector类型的数组result。函数中使用两个变量i、j分别表示数组arr1和arr2中当前处理的元素位置。在while循环中,比较arr1[i]和arr2[j]的大小,并将较小的值存入result中。然后将i或j加1。最后,如果arr1或arr2还有剩余的元素,将剩余元素存入result中。
在main函数中,创建两个vector类型的数组arr1和arr2,调用merge函数将它们合并为一个新的vector类型的数组result,并输出结果。
阅读全文