在C ++ STL中使用std :: merge()快速合并两个排序的数组(cute ho ap)
在本文中,我们将讨论如何使用C++STL中的std::merge()函数快速合并两个排序的数组。
因此,在解决问题之前,我们首先讨论C++STL中的std::merge()。
什么是std::merge()?
std::merge()函数是C++STL中的内置函数,在<algorithm>头文件中定义。merge()用于合并两个排序范围或系列。此功能将两个排序范围合并为一个单独的排序范围。所有的元素都使用小于运算符(<)进行比较,因此第三个范围也将按其自身进行排序。
我们如何使用std::merge()快速合并两个排序的数组?
我们给了两个排序数组arr1[]和arr2[],任务是使用C++STL中提供的功能merge()合并这两个排序数组并将其存储在另一个可以是arr3[]的空数组中。。
首先,我们将计算两个数组arr[size_arr]和brr[size_brr]的大小,并定义第三个数组,其大小是两个数组final[size_arr+size_brr]的大小之和。
然后,我们将使用merge()函数将两个数组合并为第三个数组,例如merge(arr,(arr+size_arr),brr,(brr+size_brr),final);
示例
#include <iostream> #include <algorithm> using namespace std; int main(){ int arr[] = {1, 2, 3}; int size_arr = sizeof(arr)/sizeof(arr[0]); int brr[] = {4, 5, 6}; int size_brr = sizeof(brr)/sizeof(brr[0]); int final[size_arr + size_brr]; merge(arr, (arr + size_arr), brr, (brr + size_brr), final); cout<<"Final array after merging the elements is: "; for (int i = 0; i < (size_brr + size_arr); i++) cout << final[i] << " "; return 0; }
输出结果
Final array after merging the elements is: 1 2 3 4 5 6