在 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP