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

C++ STL-এ set::crbegin() এবং set::crend() ফাংশন

C++ STL-এ Set কী?

C++ STL-এ সেট হল এমন কন্টেইনার যেগুলো জেনারেল অর্ডারে ইউনিক এলিমেন্ট ধারণ করতে হবে। সেটে ইউনিক এলিমেন্ট থাকতে হয় কারণ এলিমেন্টের ভ্যালুই এলিমেন্টটিকে আইডেন্টিফাই করে। একবার সেট কন্টেইনারে একটি ভ্যালু যোগ করলে পরে সেটা মডিফাই করা যায় না, যদিও আমরা এখনও সেটে ভ্যালু রিমুভ বা অ্যাড করতে পারি। সেটগুলো বাইনারি সার্চ ট্রি হিসেবে ব্যবহার করা হয়।

set::crbegin() কী?

crbegin() ফাংশন হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা হেডার ফাইলে ডিফাইন করা আছে। crbegin() ইমপ্লাইস কনস্ট্যান্ট রিভার্স বিগিন ইটারেটর, অর্থাৎ cbegin যা ছিল কনস্ট্যান্ট বিগিন ইটারেটর তার রিভার্স, অন্য কথায় crbegin() ফাংশনটি এমন একটি ইটারেটর রিটার্ন করবে যা সংশ্লিষ্ট সেট কন্টেইনারের শেষ এলিমেন্টকে পয়েন্ট করে। অন্যান্য ইটারেটরের মতো এটাও সেট মডিফাই করতে ব্যবহৃত হয়তে পারে। এটাকে শুধু সেট কন্টেইনার ট্রাভার্স করতে ব্যবহার করা যায়।

সিনট্যাক্স

constant_iterator name_of_set.crbegin();

প্যারামিটার

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

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

এই ফাংশন সেট কন্টেইনারের শেষ এলিমেন্টকে পয়েন্ট করে একটি ইটারেটর রিটার্ন করে।

উদাহরণ

Input: set<int> myset = {1, 2, 3, 4, 5}; myset.crbegin(); Output: 5

সম্পূর্ণ কোড উদাহরণ

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

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    set<int> ch(arr, arr + 5);
    for (auto i = ch.crbegin(); i != ch.crend(); i++)
        cout << *i << " ";
    return 0;
}

আউটপুট

5 4 3 2 1

set::crend() কী?

crend() ফাংশন হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা হেডার ফাইলে ডিফাইন করা আছে। crend() ইমপ্লাইস কনস্ট্যান্ট রিভার্স এন্ড ইটারেটর, অর্থাৎ cend যা ছিল কনস্ট্যান্ট এন্ড ইটারেটর তার রিভার্স, অন্য কথায় crend() ফাংশনটি এমন একটি ইটারেটর রিটার্ন করবে যা সংশ্লিষ্ট সেট কন্টেইনারের প্রথম পজিশনের ঠিক আগের পজিশনকে পয়েন্ট করে। অন্যান্য ইটারেটরের মতো এটাও সেট মডিফাই করতে ব্যবহৃত হয়তে পারে। এটাকে শুধু সেট কন্টেইনার ট্রাভার্স করতে ব্যবহার করা যায়।

সিনট্যাক্স

constant_iterator name_of_set.crend();

প্যারামিটার

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

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

এই ফাংশন সংশ্লিষ্ট সেট কন্টেইনারের প্রথম পজিশনের ঠিক আগের পজিশনকে পয়েন্ট করে একটি ইটারেটর রিটার্ন করে।

উদাহরণ

Input: set<int> myset = {1, 2, 3, 4, 5}; myset.crend(); Output: 9 // সেট কন্টেইনারের প্রথম এলিমেন্টের আগের র‍্যান্ডম নম্বর

সম্পূর্ণ কোড উদাহরণ

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

int main() {
    int arr[] = {3, 5, 8, 1, 9};
    set<int> ch(arr, arr + 5);
    for(auto i = ch.crbegin(); i != ch.crend(); i++)
        cout << *i << " ";
    return 0;
}

আউটপুট

9 8 5 3 1
  1. C++ STL-এ set::begin() এবং set::end()

  2. C++ STL-এ set::lower_bound() ফাংশন

  3. C++ STL-এ set::find() ফাংশন

  4. C++ STL Set-এ ইনসারশন এবং ডিলিশন: insert(), emplace(), erase()