ในบทความนี้ เราจะพูดถึงวิธีที่เราสามารถรวมอาร์เรย์ที่จัดเรียงไว้สองชุดเข้าด้วยกันอย่างรวดเร็วโดยใช้ฟังก์ชัน std::merge() ใน C++ STL
ดังนั้น ก่อนที่จะแก้ปัญหา เรามาพูดถึง std::merge() ใน C++ STL กันก่อน
std::merge() คืออะไร
std::merge() ฟังก์ชั่นเป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
เราจะรวมอาร์เรย์ที่จัดเรียงไว้สองชุดเข้าด้วยกันอย่างรวดเร็วโดยใช้ std::merge() ได้อย่างไร
เราได้รับอาร์เรย์ที่เรียงลำดับสองอันซึ่ง ได้แก่ arr1[] และ arr2[] และงานคือการรวมอาร์เรย์ที่เรียงลำดับทั้งสองนั้นและเก็บไว้ในอาร์เรย์ว่างอื่นซึ่งสามารถเป็น arr3[] โดยใช้ฟังก์ชัน merge() ที่มีอยู่ใน C ++ STL .
-
ขั้นแรก เราจะคำนวณขนาดของอาร์เรย์ทั้งสอง arr[size_arr] และ brr[size_brr] และกำหนดอาร์เรย์ที่สามที่มีขนาดเป็นผลรวมของขนาดของอาร์เรย์ทั้งสองสุดท้าย[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