কম্পিউটার

C++ STL-এ লিস্ট স্প্লাইস() ফাংশন


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

STL-এ একটি তালিকা কী?

তালিকা হল একটি ডেটা স্ট্রাকচার যা ক্রমাগত সময় সন্নিবেশ এবং ক্রমানুসারে কোথাও মুছে ফেলার অনুমতি দেয়। তালিকাগুলি দ্বিগুণ লিঙ্কযুক্ত তালিকা হিসাবে প্রয়োগ করা হয়। তালিকাগুলি অ-সংলগ্ন মেমরি বরাদ্দের অনুমতি দেয়। তালিকা অ্যারে, ভেক্টর এবং ডিক এর চেয়ে কন্টেইনারে যেকোন অবস্থানে উপাদানের সন্নিবেশ নিষ্কাশন এবং সরানো ভাল করে। তালিকায় উপাদানটির সরাসরি অ্যাক্সেস ধীর এবং তালিকা ফরওয়ার্ড_লিস্টের অনুরূপ, তবে ফরোয়ার্ড তালিকা অবজেক্টগুলি একক লিঙ্কযুক্ত তালিকা এবং সেগুলি কেবলমাত্র ফরোয়ার্ডে পুনরাবৃত্তি করা যেতে পারে।

তালিকাটি কী::splice()?

list::splice() হল C++ STL-এ একটি অন্তর্নির্মিত ফাংশন যা হেডার ফাইলে ঘোষণা করা হয়েছে। splice() একটি নির্দিষ্ট অবস্থানে একটি তালিকার ধারক থেকে অন্য তালিকা পাত্রে উপাদান স্থানান্তর করতে ব্যবহৃত হয়। এই ফাংশনটি একটি তালিকায় বিষয়বস্তু সন্নিবেশিত করে এবং উভয় তালিকার আকার পরিবর্তন করে অন্য তালিকা থেকে সেই সামগ্রীগুলিকে সরিয়ে দেয়৷

সিনট্যাক্স

This function’s syntax can be defined as 3 ways:
list1.splice(position, list2);
list1.splice(position, list2, i);
list1.splice(position, list2, first, last);

পরামিতি

  • অবস্থান − তালিকার অবস্থান যেখানে আমরা উপাদান স্থানান্তর করতে চাই।

  • তালিকা2 − যে তালিকা থেকে আমরা উপাদানগুলি স্থানান্তর করতে চাই৷

  • i:এটি একটি পুনরাবৃত্তিকারী যা তালিকা2-এর অবস্থান নির্দিষ্ট করে যেখান থেকে আমরা তালিকা2-এর শেষ পর্যন্ত যে উপাদানটি স্থানান্তর করতে চাই।

  • প্রথম, শেষ − এই উভয়ই পুনরাবৃত্তিকারী যা তালিকা2 এর শুরু এবং শেষ অবস্থানগুলিকে সংজ্ঞায়িত করে যেখান থেকে আমরা উপাদানগুলি স্থানান্তর করতে চাই৷

উদাহরণ

Input: list<int> List_container= { 10, 11, 13, 15};
      list<int> List2 = {1, 2, 3, 4};
      List_container.splice(2, List2);
Output:
      List_container= 10 11 13 15 3 4
      List2 = 1 2

রিটার্ন মান

এই ফাংশন তালিকার শেষ উপাদানের দিকে নির্দেশ করে একটি বিপরীত পুনরাবৃত্তিকারী প্রদান করে। বিপরীত পুনরাবৃত্তিকারী একটি পুনরাবৃত্তিকারী যা পিছনের দিকে চলে।

#include <bits/stdc++.h>
using namespace std;
int main(){
   list<int> myList_1 = { 10, 20, 30, 40 };
   list<int> myList_2 = { 50, 60 };
   list<int>::iterator i;
   i = myList_2.begin();
   myList_1.splice(myList_1.end(), myList_2, i);
      cout<<"list after splice operation" << endl;
   for (auto temp : myList_1)
      cout << temp << " ";
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
list after splice operation
10 20 30 40 50

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int main(){
   list<int> myList_1 = { 10, 20};
   list<int> myList_2 = { 30, 40, 50};
   list<int> myList_3 = {60};
   myList_1.splice(myList_1.begin(), myList_2);
      cout << "list 1 after splice operation" << endl;
   for (auto x : myList_1)
      cout << x << " ";
   myList_3.splice(myList_3.end(), myList_1);
      cout << "\nlist 3 after splice operation" << endl;
   for (auto x : myList_3)
      cout << x << " ";
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
list 1 after splice operation
30 40 50 10 20
list 1 after splice operation
60 30 40 50 10 20

  1. C++ STL-এ বিপরীত ফাংশন তালিকাভুক্ত করুন

  2. C++ STL-এ তালিকা emplace() ফাংশন

  3. C++ STL-এ assign() ফাংশনের তালিকা করুন

  4. তালিকা ব্যাক() ফাংশন C++ STL-এ