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

C++ STL-এ set::equal_range() ফাংশন

C++ STL-এ Set কী?

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

set::equal_range() কী?

equal_range() ফাংশন হল C++ STL-এ একটি বিল্ট-ইন ফাংশন, যা হেডার ফাইলে ডিফাইন করা আছে। এই ফাংশন সেট কন্টেইনারের সে রেঞ্জ রিটার্ন করে যেটি ফাংশনের আর্গুমেন্ট হিসেবে পাস করা ভ্যালু ধারণ করে। যেহেতু সেটে সব ভ্যালু ইউনিক থাকে, তাই খুঁজে পাওয়া রেঞ্জে একই ভ্যালু একটাই থাকবে। যদি ভ্যালু কন্টেইনারে না থাকে তবে রেঞ্জ শূন্য হবে, দুই ইটারেটরই প্রথম পজিশনকে পয়েন্ট করবে।

সিনট্যাক্স

Set1.equal_range(const type_t& value);

প্যারামিটার

এই ফাংশন এক প্যারামিটার গ্রহণ করে, অর্থাৎ वो এলিমেন্ট যা খুঁজে বের করতে হবে।

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

এই ফাংশন একটি পেয়ার বা ইটারেটর রেঞ্জ রিটার্ন করে যা কন্টেইনারের লোয়ার বাউন্ড থেকে শুরু হয়ে কন্টেইনারে খুঁজে বের করা এলিমেন্ট পর্যন্ত থাকে।

উদাহরণ

Input: set<int> myset = {10, 20, 30, 40}; Output: lower bound of 30 is 30

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

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

int main() {
    set<int> mySet;
    mySet.insert(10);
    mySet.insert(20);
    mySet.insert(30);
    mySet.insert(40);
    mySet.insert(50);
    cout << "Elements before applying range() Function : ";
    for (auto i = mySet.begin(); i != mySet.end(); i++)
        cout << *i << " ";
    auto i = mySet.equal_range(30);
    cout << "\nlower bound of 30 is " << *i.first;
    cout << "\nupper bound of 30 is " << *i.second;
    i = mySet.equal_range(40);
    cout << "\nlower bound of 40 is " << *i.first;
    cout << "\nupper bound of 40 is " << *i.second;
    i = mySet.equal_range(10);
    cout << "\nlower bound of 10 is " << *i.first;
    cout << "\nupper bound of 10 is " << *i.second;
    return 0;
}

আউটপুট

Elements before applying range() Function : 10 20 30 40 50
lower bound of 30 is 30
upper bound of 30 is 40
lower bound of 40 is 40
upper bound of 40 is 50
lower bound of 10 is 10
upper bound of 10 is 20
  1. C++ STL-এ set::find() ফাংশন

  2. C++ STL-এ negate ফাংশন: মানগুলোর সাইন পরিবর্তন

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

  4. C++ STL-এ acos() ফাংশন