কম্পিউটার টিউটোরিয়াল

C++ STL-এ forward_list::swap()

এই আর্টিকেলে আমরা 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

অ্যালগরিদম

  1. দুটি ফরওয়ার্ড লিস্ট ইনিশিয়ালাইজ এবং প্রিন্ট করুন।
  2. swap() ফাংশন কল করুন।
  3. সোয়াপের পর লিস্টগুলো প্রিন্ট করুন।

উদাহরণ

// 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) টাইম কমপ্লেক্সিটিতে হয় কারণ এটি শুধু ইন্টারন্যাল পয়েন্টারগুলো এক্সচেঞ্জ করে।

  1. C++ STL-এ list insert() ফাংশন

  2. C++ STL-এ list unique() ফাংশন

  3. C++ STL-এ forward_list::cend() ফাংশন

  4. C++ STL-এ forward_list::cbegin() ফাংশন