এই আর্টিকেলে আমরা C++-এ forward_list::swap() ফাংশনের কাজকর্ম দেখব।
ফরওয়ার্ড লিস্ট কী?
ফরওয়ার্ড লিস্ট হলো একটি সিকোয়েন্স কন্টেইনার যা সিকোয়েন্সের যেকোনো স্থানে কনস্ট্যান্ট টাইমে ইন্সার্ট এবং ইরেজ অপারেশন করার সুবিধা দেয়। এটি সিঙ্গলি-লিংকড লিস্ট হিসেবে ইমপ্লিমেন্ট করা হয়।
forward_list::swap() কী?
forward_list::swap() C++ স্ট্যান্ডার্ড লাইব্রেরির একটি ফাংশন যা একই সাইজ এবং একই ডেটা টাইপের দুটি লিস্টের কন্টেন্ট斯왪াপ (আদান-প্রদান) করতে ব্যবহৃত হয়।
সিনট্যাক্স
forward_list1.swap(forward_list2);
অথবা
swap(forward_list1, forward_list2);
উদাহরণ ইনপুট-আউটপুট
First list : 57 99 54 34 84 Second list : 45 65 78 96 77 After swapping: First list : 45 65 78 96 77 Second list : 57 99 54 34 84
অ্যালগরিদম
- দুটি ফরওয়ার্ড লিস্ট ইনিশিয়ালাইজ এবং প্রিন্ট করুন।
swap()ফাংশন কল করুন।- সোয়াপের পর লিস্টগুলো প্রিন্ট করুন।
উদাহরণ
// C++ code to demonstrate the working of forward_list::swap()
#include <iostream>
#include <forward_list>
using namespace std;
int main() {
// initializing two forward lists
forward_list<int> list1 = { 10, 20, 30, 40, 50 };
cout << "Elements of List1: ";
for (auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
forward_list<int> list2 = { 40, 30, 20, 10, 50 };
cout << "\nElements of List2: ";
for (auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
// defining of function that performs the swap operation
list1.swap(list2); // or swap(list1, list2);
cout << "\nAfter swapping List1 is: ";
for (auto x = list1.begin(); x != list1.end(); ++x)
cout << *x << " ";
cout << "\nAfter swapping List2 is: ";
for (auto x = list2.begin(); x != list2.end(); ++x)
cout << *x << " ";
return 0;
}
আউটপুট
Elements of List1: 10 20 30 40 50 Elements of List2: 40 30 20 10 50 After swapping List1: 40 30 20 10 50 After swapping List2: 10 20 30 40 50
সংশোধন: মূল কোডে list1.start(), list2.start() এবং হেডার ফাইলগুলো ভুল ছিল। সঠিক কোড উপরে দেওয়া হয়েছে। সোয়াপ অপারেশন O(1) টাইম কমপ্লেক্সিটিতে হয় কারণ এটি শুধু ইন্টারন্যাল পয়েন্টারগুলো এক্সচেঞ্জ করে।