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

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

C++ STL-এ Set কী?

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

set::upper_bound() কী?

upper_bound() হল C++ STL-এ একটি বিল্ট-ইন ফাংশন যা হেডার ফাইলে ডিক্লেয়ার করা আছে। upper_bound() সেই ভ্যালুর আপার বাউন্ডের একটি ইটারেটর রিটার্ন করে যার আপার বাউন্ড খুঁজতে চাই। ফাংশনটি একটি ইটারেটর রিটার্ন করে যা সেই ভ্যালুর ঠিক পরের এলিমেন্টকে পয়েন্ট করে যার আপার বাউন্ড খুঁজতে চাই।

সিনট্যাক্স

name_of_set.upper_bound(const type_t& value);

প্যারামিটার

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

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

এই ফাংশন একটি ইটারেটর রিটার্ন করে যা ভ্যালু থেকে বড় unmittelbar পরের এলিমেন্টকে পয়েন্ট করে।

উদাহরণ

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

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

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

int main() {
    set<int> Set;
    Set.insert(9);
    Set.insert(7);
    Set.insert(5);
    Set.insert(3);
    Set.insert(1);
    cout << "Elements are : ";
    for (auto i = Set.begin(); i != Set.end(); i++)
        cout << *i << " ";
    auto i = Set.upper_bound(5);
    cout << "\nupper bound of 5 in the set is: ";
    cout << (*i) << endl;
    i = Set.upper_bound(1);
    cout << "upper bound of 1 in the set is: ";
    cout << (*i) << endl;
    return 0;
}

আউটপুট

upper bound of 5 in the set is: 7
upper bound of 1 in the set is: 3

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

#include <iostream>
#include <set>
int main () {
    std::set<int> Set;
    std::set<int>::iterator one, end;
    for (int i = 1; i < 10; i++)
        Set.insert(i * 10);
    one = Set.lower_bound (20);
    end = Set.upper_bound (40);
    Set.erase(one, end); // 10 20 70 80 90
    std::cout << "Elements are: ";
    for (std::set<int>::iterator i = Set.begin(); i != Set.end(); ++i)
        std::cout << ' ' << *i;
    std::cout << '\n';
    return 0;
}

আউটপুট

Elements are : 10 50 60 70 80 90
  1. C++ STL-এ set::find() ফাংশন

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

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

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