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