lower_bound() ফাংশন
set::lower_bound(k) একটি ইটেরেটর রিটার্ন করে যা k-এর সমান বা তার ঠিক পরবর্তী বড় এলিমেন্টকে পয়েন্ট করে। যদি k সেটে থাকে, তবে সেটি পয়েন্ট করবে। না থাকলে, k-এর চেয়ে বড় সবচেয়ে ছোট এলিমেন্টকে পয়েন্ট করবে। যদি এমন কোনো এলিমেন্ট নেই (সকল এলিমেন্ট k-এর চেয়ে ছোট), তবে end() রিটার্ন করে।
উদাহরণ কোড
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s = {1, 2, 4, 6, 7, 9, 10};
auto it = s.lower_bound(4);
cout << "lower_bound(4): " << *it << endl; // 4
it = s.lower_bound(5);
cout << "lower_bound(5): " << *it << endl; // 6 (5 নেই, পরবর্তী বড় 6)
it = s.lower_bound(30);
if (it == s.end()) cout << "lower_bound(30): end() (not found)" << endl;
else cout << *it << endl;
return 0;
}
আউটপুট
lower_bound(4): 4 lower_bound(5): 6 lower_bound(30): end() (not found)
সময় জটিলতা: O(log n)।