在 C++ STL 中使用 std::merge() 快速合并两个已排序数组


在本文中,我们将讨论如何使用 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

更新于: 2020 年 4 月 17 日

1 千次以上的观看+

启动你的 职业生涯

完成课程以获得认证

开始学习
广告
© . All rights reserved.