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

सी ++ में गैर-बढ़ते वेक्टर के लिए ऊपरी बाउंड और लोअर बाउंड


इस लेख में हम C++ STL में गैर-बढ़ते क्रम में क्रमबद्ध एक सरणी के लिए vector::upper_bound() और vector::lower_bound() पर चर्चा करने जा रहे हैं।

वेक्टर गतिशील सरणियों के समान हैं; जब भी कोई मान उस कंटेनर में डाला या हटाया जाता है, जहां हम मान संग्रहीत कर रहे हैं, तो वे इसके आकार को स्वयं संशोधित करने की क्षमता रखते हैं।

एक वेक्टर में, निचला बाउंड एक इटरेटर देता है जो उस श्रेणी के पहले तत्व की ओर इशारा करता है जो दिए गए मान की तुलना नहीं करता है। अपर बाउंड एक इटरेटर पॉइंटिंग एलिमेंट को उस सीमा में लौटाता है जो दिए गए मान से छोटा है।

इनपुट

30 30 30 20 20 20 10 10

आउटपुट

Lower bound of 20= 3
Upper bound of 20= 6

इनपुट

9 9 8 8 8 7 7 7 6 6 6 6

आउटपुट

Lower bound of 7= 5
Upper bound of 7= 8

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

यह श्रेणी के पहले तत्व की ओर इशारा करते हुए एक पुनरावर्तक देता है और श्रेणी के अंतिम तत्व की ओर इशारा करते हुए पुनरावर्तक भी देता है।

दृष्टिकोण जिसका अनुसरण किया जा सकता है

  • सबसे पहले, हम वेक्टर को इनिशियलाइज़ करते हैं।

  • फिर हम वेक्टर तत्व को गैर-बढ़ते क्रम में क्रमबद्ध करते हैं।

  • तब हम इसकी निचली सीमा पाते हैं।

  • तब हम इसकी ऊपरी सीमा पाते हैं।

  • अंत में हम दोनों सीमाओं को प्रिंट करते हैं।

उपरोक्त दृष्टिकोण का उपयोग करके, हम किसी भी वेक्टर के निचले बाउंड और अपर बाउंड का पता लगा सकते हैं, इसे लोअर और अपर बाउंड को खोजने के लिए वेक्टर को सॉर्ट करना आवश्यक है। यदि वेक्टर को सॉर्ट नहीं किया जाता है, तो हम इसकी बाउंड नहीं ढूंढ सकते हैं

उदाहरण

/ / C++ program to demonstrate the working of lower bound and upper bound
#include<iosteam.h>
#include<vector.h>
Using namespace std;
int main ( ){
   int vect[ ] = {13,13,13,16,16,16,17,17,17,17,18,18}
   vector<int> v(vect, vect+8);
   sort (v.begin( ), v.end( ), greater<int>( ));
   cout<< “ \n Sorted Vector: ”;
   for( auto i = vect.begin( ), i =! vect.end( ), ++i)
      vector<int> iterator low, up;
   low = lower_bound (v.begin( ), v.end( ), 17);
   up = upper_bound (v.begin( ), v.end( ), 17);
   cout<<” Lower bound” << (lower – v.begin( ))<< “ \n”;
   cout<< “ Upper bound “<< (upper – v,begin( ))<<”\n”;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Sorted Vector: 18 18 17 17 17 17 16 16 16 13 13 13
Lower bound = 2
Upper bound = 6

उदाहरण

#include<iosteam.h>
#include<vector.h>
Using namespace std;
int main ( ){
   int vect[ ] = {5,5,5,5,7,7 7,8,8,8,8,9,9,9,10,10}
   vector<int> v(vect, vect+16);
   sort (v.begin( ), v.end( ));
   cout<< “ \n Sorted Vector: ”;
   for( auto i = vect.begin( ), i =!vect.end( ), ++i)
      vector<int> iterator low, up;
   low = lower_bound (v.begin( ), v.end( ), 8);
   up = upper_bound (v.begin( ), v.end( ), 8);
   cout<<” Lower bound” << (lower – v.begin( ))<< “ \n”;
   cout<< “ Upper bound “<< (upper – v,begin( ))<<”\n”;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Sorted Vector: 10 10 9 9 9 8 8 8 8 7 7 7 5 5 5 5
Lower bound = 5
Upper bound = 9

  1. ऊपरी विकर्ण को C++ में लोअर के साथ स्वैप करें

    यह ट्यूटोरियल c++ कोड का उपयोग करके तीन-विकर्ण सरणी की ऊपरी पंक्ति को इसके निचले हिस्से में स्वैप करने के लिए डिज़ाइन किया गया है। इसके अलावा, यदि एक तीन-विकर्ण सरणी एक इनपुट है, तो वांछित परिणाम कुछ इस तरह होना चाहिए; इसके लिए एल्गोरिथम में कार्रवाई की प्रक्रिया इस प्रकार बताई गई है; एल्गोरिदम S

  1. C++ में घनाभ के आयतन और सतह क्षेत्र के लिए कार्यक्रम

    घनाभ क्या है? घनाभ एक त्रि-आयामी वस्तु है जिसमें आयत आकार के छह फलक होते हैं जिसका अर्थ है कि इसकी अलग-अलग लंबाई और चौड़ाई की भुजाएँ हैं। घन और घनाभ के बीच का अंतर यह है कि एक घन की लंबाई, ऊंचाई और चौड़ाई समान होती है जबकि घनाभ में ये तीनों समान नहीं होते हैं घनाभ के गुण हैं - छह चेहरे 12 किनारे

  1. C++ में घन के आयतन और सतह क्षेत्र के लिए कार्यक्रम

    घन क्या है? घन एक त्रि-आयामी वस्तु है जिसमें चौकोर आकार के छह फलक होते हैं, जिसका अर्थ है कि इसकी लंबाई और चौड़ाई समान है। घन निम्नलिखित गुणों वाला एकमात्र नियमित हेक्साहेड्रोन है - छह चेहरे 12 किनारे 8 कोने घन की आकृति नीचे दी गई है समस्या पक्ष के साथ दिया गया, कार्य एक घन का कुल सतह क्षेत्र