Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ एसटीएल में अपर_बाउंड () फ़ंक्शन सेट करें

इस लेख में हम C++ STL में set::upper_bound(), उनके सिंटैक्स, कार्यप्रणाली और उनके रिटर्न वैल्यू पर चर्चा करने जा रहे हैं।

C++ STL में क्या सेट होता है?

सी ++ एसटीएल में सेट कंटेनर हैं जिनमें सामान्य क्रम में अद्वितीय तत्व होने चाहिए। सेट में अद्वितीय तत्व होने चाहिए क्योंकि तत्व का मान तत्व की पहचान करता है। एक बार सेट कंटेनर में एक बार जोड़ा गया मान बाद में संशोधित नहीं किया जा सकता है, हालांकि हम अभी भी सेट में मानों को हटा या जोड़ सकते हैं। सेट का उपयोग बाइनरी सर्च ट्री के रूप में किया जाता है।

क्या सेट है::upper_bound()?

अपर_बाउंड () सी ++ एसटीएल में एक इनबिल्ट फ़ंक्शन है जिसे <सेट> हेडर फ़ाइल में घोषित किया गया है। अपर_बाउंड () एक इटरेटर को उस मान की ऊपरी सीमा पर लौटाता है जिसकी ऊपरी सीमा हम खोजना चाहते हैं। फ़ंक्शन उस मान के तत्काल अगले तत्व की ओर इशारा करते हुए इटरेटर लौटाता है जिसकी ऊपरी सीमा हम खोजना चाहते हैं।

सिंटैक्स

name_of_set.upper_bound(const type_t&value);

पैरामीटर

यह फ़ंक्शन एक पैरामीटर को स्वीकार करता है, यानी वह मान जिसकी ऊपरी सीमा मिलनी है।

रिटर्न वैल्यू

यह फ़ंक्शन तत्काल अगले तत्व की ओर इशारा करते हुए एक पुनरावर्तक देता है जो मूल्य से अधिक है

उदाहरण

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. सी ++ एसटीएल में नकारात्मक समारोह

    नेगेट फ़ंक्शन का उपयोग दिए गए मानों को नकारने के लिए किया जाता है जैसे कि मानों के संकेत को बदलने के लिए। यह नकारात्मक मानों को सकारात्मक और इसके विपरीत में बदल देता है। फ़ंक्शन प्रोटोटाइप: function transform(a_begin, a_end, a1_begin, negate()):    a_begin = lower bound of the array.  

  1. atan2 () सी ++ एसटीएल में समारोह

    atan2() फ़ंक्शन y और x के संदर्भ में निर्देशांक के स्पर्शरेखा प्रतिलोम को लौटाता है। यहाँ y और x क्रमशः y और x निर्देशांक के मान हैं। यह C++ STL में एक इनबिल्ट फंक्शन है। atan2() फ़ंक्शन का सिंटैक्स निम्नानुसार दिया गया है। atan2(dataType var1, dataType var2) जैसा कि सिंटैक्स से देखा जा सकता है, फ

  1. एसीओएस () सी ++ एसटीएल में फ़ंक्शन

    acos() फ़ंक्शन रेडियन में दिए गए कोण की प्रतिलोम कोज्या लौटाता है। यह C++ STL में एक इनबिल्ट फंक्शन है। एकोस () फ़ंक्शन का सिंटैक्स निम्नानुसार दिया गया है। acos(var) जैसा कि सिंटैक्स से देखा जा सकता है, फ़ंक्शन acos () डेटा प्रकार फ्लोट, डबल या लॉन्ग डबल के पैरामीटर var को स्वीकार करता है। इस पैर