이 기사에서는 C++ STL에서 std::merge() 함수를 사용하여 두 개의 정렬된 배열을 빠르게 병합하는 방법에 대해 논의할 것입니다.
따라서 문제를 해결하기 전에 먼저 C++ STL의 std::merge()에 대해 논의해 보겠습니다.
std::merge()란 무엇입니까?
std::merge() 함수는
std::merge()를 사용하여 두 개의 정렬된 배열을 빠르게 병합하는 방법은 무엇입니까?
arr1[] 및 arr2[]라는 두 개의 정렬된 배열이 제공되고 작업은 이 두 개의 정렬된 배열을 병합하고 C++ STL에서 사용할 수 있는 merge() 함수를 사용하여 arr3[]이 될 수 있는 다른 빈 배열에 저장하는 것입니다. .
-
먼저 두 배열 arr[size_arr] 및 brr[size_brr]의 크기를 계산하고 크기가 두 배열 final[size_arr+size_brr]의 크기의 합인 세 번째 배열을 정의합니다.
-
그런 다음 merge(arr, (arr + size_arr), brr, (brr + size_brr), final)과 같은 merge() 함수를 사용하여 두 배열을 세 번째 배열로 병합합니다.
예시
#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