কম্পিউটার

C++ STL-এ ফরওয়ার্ড_লিস্ট মার্জ()


এই নিবন্ধে আমরা C++ এ ফরওয়ার্ড_লিস্ট::মার্জ() ফাংশনের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।

STL এ ফরোয়ার্ড_লিস্ট কি?

ফরোয়ার্ড তালিকা হল সিকোয়েন্স কন্টেনার যা ক্রমাগত সময় ক্রমানুসারের মধ্যে যেকোনো জায়গায় ক্রিয়াকলাপ সন্নিবেশ এবং মুছে ফেলার অনুমতি দেয়। ফরোয়ার্ড তালিকা একটি একক-লিঙ্কযুক্ত তালিকা হিসাবে প্রয়োগ করা হয়। ক্রমানুসারে পরবর্তী উপাদানের লিঙ্কের প্রতিটি উপাদানের জন্য অ্যাসোসিয়েশন দ্বারা ক্রম রাখা হয়।

forward_list::merge() কি?

forward_list::merge() হল C++ STL-এ একটি অন্তর্নির্মিত ফাংশন যা হেডার ফাইলে ঘোষণা করা হয়। merge() দুটি সাজানো ফরওয়ার্ড_লিস্টকে একটিতে মার্জ করতে ব্যবহৃত হয়।

দুটি তালিকা একত্রিত করার আগে আমাদের অবশ্যই নিশ্চিত করতে হবে যে তালিকাগুলি সাজানো হয়েছে। যদি কোন তুলনাকারী পাস না হয় তবে এটি দুটি তালিকাকে এক সাজানো তালিকায় একত্রিত করে। আমরা যখন দুটি তালিকার মধ্যে অভ্যন্তরীণ তুলনা চাই তখন আমাদের অবশ্যই তুলনাকারী যোগ করতে হবে।

সিনট্যাক্স

flist_container1.merge(flist_container2); //will merge both lists
flist_container1.merge(flist_container2, comparator);

এই ফাংশনটি এক বা দুটি প্যারামিটার গ্রহণ করতে পারে −

পরামিতি

  • list_container2 − এটি দ্বিতীয় তালিকার একটি বস্তু যা একত্রিত করতে হবে

  • তুলনাকারী - এটি একটি অভ্যন্তরীণ তুলনা সংজ্ঞায়িত করে। এটি একটি বাইনারি প্রিডিকেট যা তালিকা কন্টেনারে সংজ্ঞায়িত একই মানের দুটি ইনপুট ধারণ করে, যদি list_container1 উপাদানটিকে list_container2 এর আগে যেতে বিবেচনা করা হয় তবে এটি সত্য হয়, অন্যথায় এটি মিথ্যা হবে৷

রিটার্ন মান

এই ফাংশন কিছুই ফেরত দেয় না।

উদাহরণ

/*নীচের কোডে, আমরা দুটি ফরোয়ার্ড তালিকা তৈরি করছি এবং দুটিই সাজানো হয়েছে এবং কাজ হল C++ এ merge() ফাংশন ব্যবহার করে তাদের একত্রিত করা যা সাজানো উচিত*/

#include <bits/stdc++.h>
using namespace std;
int main() {
   //creating forward list by inserting sorted values
   forward_list<int> myForwardList1 = { 1, 3, 5, 7 };
   forward_list<int> myForwardList2 = { 2, 4, 6 };
   // merging two sorted forward lists
   myForwardList1.merge(myForwardList2);
   cout << "elements after merging" << endl;
   for (auto i = myForwardList1.begin(); i != myForwardList1.end(); ++i)
      cout << *i << " ";
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

elements after merging
1 2 3 4 5 6 7

তুলনাকারীর সাথে

উদাহরণ

/*নীচের কোডে, আমরা দুটি ফরোয়ার্ড তালিকা তৈরি করছি এবং দুটিই সাজানো হয়নি এবং কাজটি হল প্রথমে তালিকাটি সাজানো এবং তারপরে C++ এ merge() ফাংশন ব্যবহার করে তাদের একত্রিত করা এবং এটি সাজানো উচিত।*/

#include <bits/stdc++.h>
using namespace std;
int main (){
   //create unsorted forward list
   forward_list<int> myForwardList1 = {3, 2, 9};
   forward_list<int> myForwardList2 = {8, 1, 2};
   //sorting the forward list using sort() function
   myForwardList1.sort();
   myForwardList2.sort();
   myForwardList1.merge(myForwardList2);
   cout << "Elements after merging" << endl;
   for (auto i = myForwardList1.begin(); i != myForwardList1.end(); ++i)
      cout << *i << " ";
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Elements after merging
1 2 2 3 8 9

  1. ম্যাপ max_size() C++ STL-এ

  2. C++ STL(3) তে সেট বনাম unordered_set

  3. C++ STL(3.5) এ স্ট্যাক

  4. STL এ ফরওয়ার্ড_লিস্ট বাস্তবায়নের জন্য C++ প্রোগ্রাম