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

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

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

STL-এ Forward_list কী?

ফরওয়ার্ড লিস্ট হলো একটি সিকোয়েন্স কন্টেইনার যা সিকোয়েন্সের যেকোনো স্থানে কনস্ট্যান্ট টাইমে ইন্সার্ট এবং ইরেজ অপারেশন করার সুবিধা দেয়। এটি সিঙ্গলি-লিংকড লিস্ট হিসেবে ইমপ্লিমেন্ট করা হয়।

forward_list::before_begin() কী?

forward_list::before_begin() C++ STL-এ একটি বিল্ট-ইন ফাংশন যা <forward_list> হেডার ফাইলে ডিক্লেয়ার করা আছে। এই ফাংশন ফরওয়ার্ড লিস্ট কন্টেইনারের প্রথম এলিমেন্টের ঠিক আগের পজিশন নির্দেশকারী একটি ইটারেটর রিটার্ন করে। যেহেতু ফরওয়ার্ড লিস্টে পिछ pelea যাওয়া সম্ভব নয়, তাই এই ইটারেটরটি মূলত insert_after(), emplace_after() বা erase_after() মতো অপারেশন לראשে নতুন এলিমেন্ট যোগ করার জন্য ব্যবহৃত হয়।

সিনট্যাক্স

forwardlist_container.before_begin();

এই ফাংশন কোনো প্যারামিটার গ্রহণ করে না।

রিটার্ন ভ্যালু

সিকোয়েন্সের শুরুতে যাওয়ার আগের পজিশনের দিকে নির্দেশকারী একটি ইটারেটর রিটার্ন করে।

উদাহরণ ১

নিচের কোডে before_begin() ব্যবহার করে লিস্টের শুরুতে একটি এলিমেন্ট ইন্সার্ট করা হয়েছে।

#include <bits/stdc++.h>
using namespace std;

int main() {
    //creating and initializing forward list
    forward_list<int> forwardList = { 3, 6, 1, 2, 4 };
    //calling before_begin function
    auto i = forwardList.before_begin();
    //inserting element before forward list
    forwardList.insert_after(i, 7);
    cout << "Element of the forward list are: " << endl;
    for (auto j = forwardList.begin(); j != forwardList.end(); ++j)
        cout << *j << " ";
    return 0;
}

আউটপুট

Element of the forward list are: 7 3 6 1 2 4

উদাহরণ ২

#include <bits/stdc++.h>
using namespace std;

int main() {
    forward_list<int> forwardList = {2, 23, 12, 11};
    forwardList.insert_after(forwardList.before_begin(), 19);
    cout << "Elements in the forward lists are : ";
    for (auto j = forwardList.begin(); j != forwardList.end(); ++j)
        cout << *j << " ";
    return 0;
}

আউটপুট

Elements in the forward lists are : 19 2 23 12 11
  1. C++ STL-এ map::max_size() ফাংশন

  2. C++ STL-এ স্ট্যাক (Stack)

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

  4. C++ STL-এ Forward List বাস্তবায়ন: সিঙ্গলি লিংকড লিস্ট