सी ++ में निम्न_बाउंड () विधि क्या है

Si Mem Nimna Ba Unda Vidhi Kya Hai



सी ++ प्रोग्रामिंग भाषा व्यापक रूप से उपयोग किए जाने वाले कार्यों और विधियों की एक विस्तृत श्रृंखला प्रदान करती है। निचला_बाउंड () विधि एक ऐसा फ़ंक्शन है जिसका उपयोग सॉर्ट किए गए कंटेनर में दिए गए मान की पहली घटना को खोजने के लिए किया जाता है। यह आलेख सिंटैक्स, पैरामीटर, वापसी मान और सी ++ में कम_बाउंड () विधि के लिए एक उदाहरण कोड को शामिल करता है।

लोअर_बाउंड () विधि क्या है?

सी ++ में निचली_बाउंड () विधि किसी सॉर्ट किए गए कंटेनर में दिए गए मान की पहली घटना को ढूंढती है। यह C++ में <एल्गोरिदम> लाइब्रेरी का एक हिस्सा है और इसका उपयोग सरणियों, वैक्टर और अन्य सॉर्ट किए गए कंटेनरों पर बाइनरी खोज करने के लिए किया जाता है। निचला_बाउंड () विधि एक पुनरावर्तक देता है जो कंटेनर की निर्दिष्ट सीमा में पहले तत्व को इंगित करता है, जो प्रदान किए गए मान से कम नहीं है।

वाक्य - विन्यास







C++ में lower_bound() मेथड के दो वेरिएशन हैं: एक डिफॉल्ट और एक कस्टम सिंटैक्स।



डिफ़ॉल्ट सिंटैक्स

डिफ़ॉल्ट सिंटैक्स क्रमशः खोजे जाने वाले रेंज में पहले और पिछले तत्वों की ओर इशारा करते हुए फॉरवर्डइटरेटर में ले जाता है, और रेंज में तत्वों की तुलना करने के लिए एक मान।



फॉरवर्डइटरेटर लोअर_बाउंड ( फॉरवर्डइटरेटर पहले , फॉरवर्डइटरेटर आखिरी , कॉन्स्ट टी और वैल ) ;

कस्टम सिंटैक्स

कस्टम सिंटैक्स अतिरिक्त रूप से उपयोगकर्ता-परिभाषित बाइनरी प्रेडिकेट फ़ंक्शन में लेता है जो तत्वों को ऑर्डर करने के लिए सख्त कमजोर क्रम का पालन करता है।





फॉरवर्डइटरेटर लोअर_बाउंड ( फॉरवर्डइटरेटर पहले , फॉरवर्डइटरेटर आखिरी , कॉन्स्ट टी और वैल , कॉम्प की तुलना करें ) ;

पैरामीटर

C++ में lower_bound() मेथड तीन पैरामीटर लेता है।

पहला अंतिम: पहले दो पैरामीटर, 'प्रथम' और 'अंतिम', उस श्रेणी को निर्धारित करते हैं [प्रथम, अंतिम) जिसके भीतर विधि निचली सीमा की खोज करती है। सीमा दो मापदंडों द्वारा निर्दिष्ट की जाती है, अर्थात् 'पहला' और 'अंतिम'। श्रेणी में 'पहले' और 'अंतिम' पुनरावृत्तियों के बीच सभी तत्व शामिल हैं, लेकिन 'अंतिम' पुनरावर्तक द्वारा इंगित तत्व शामिल नहीं हैं।



वैल: लोअर_बाउंड () विधि के तीसरे पैरामीटर को 'वैल' कहा जाता है। यह निचली सीमा के मान का प्रतिनिधित्व करता है जिसे निर्दिष्ट सीमा के भीतर खोजने की आवश्यकता होती है। जब लोअर_बाउंड () विधि को कॉल किया जाता है, तो यह कंटेनर की निर्दिष्ट सीमा के भीतर पहले तत्व की खोज करता है जो दिए गए मान 'वैल' से अधिक या उसके बराबर होता है।

कॉम्प: निचला_बाउंड () विधि बाइनरी तुलना फ़ंक्शन को इसके चौथे पैरामीटर के रूप में भी स्वीकार कर सकता है। इसमें दो तर्क होते हैं: द्वारा इंगित प्रकार फॉरवर्डइटरेटर , और दूसरा है वैल . फ़ंक्शन तब दो तर्कों के बीच तुलना के आधार पर एक बूलियन मान लौटाता है। कॉम्प तर्क इसके किसी भी तर्क को नहीं बदलता है और यह केवल फ़ंक्शन पॉइंटर या फ़ंक्शन ऑब्जेक्ट हो सकता है।

प्रतिलाभ की मात्रा

निचला_बाउंड () एक पुनरावर्तक देता है जो पहले तत्व की ओर इंगित करता है जो इससे अधिक या उसके बराबर है वैल . यदि किसी कंटेनर की निर्दिष्ट सीमा में सभी तत्व दिए गए मान से छोटे हैं वैल , निचला_बाउंड () विधि श्रेणी में अंतिम तत्व की ओर इशारा करते हुए एक पुनरावर्तक देता है, और यदि सभी तत्व इससे अधिक हैं वैल , यह एक पुनरावर्तक देता है जो श्रेणी में पहले तत्व को इंगित करता है।

उदाहरण कोड

यह सी ++ कोड किसी दिए गए मान से कम नहीं होने वाले सॉर्ट किए गए वेक्टर में पहला तत्व खोजने के लिए std::lower_bound() फ़ंक्शन के उपयोग को प्रदर्शित करता है।

#शामिल <बिट्स/एसटीडीसी++.एच>

int यहाँ मुख्य ( )

{

// इनपुट वेक्टर

कक्षा :: वेक्टर < दोहरा > मान { 10 , पंद्रह , बीस , 25 , 30 } ;

// प्रिंट वेक्टर

कक्षा :: अदालत << 'वेक्टर में शामिल हैं:' ;

के लिए ( अहस्ताक्षरित int यहाँ मैं = 0 ; मैं < मान। आकार ( ) ; मैं ++ )

कक्षा :: अदालत << '' << मान [ मैं ] ;

कक्षा :: अदालत << ' \एन ' ;

कक्षा :: वेक्टर < दोहरा >:: इटरेटर it1 , it2 , it3 ;

// एसटीडी :: निचला_बाउंड

it1 = कक्षा :: निम्न परिबंध ( मान। शुरू ( ) , मान। अंत ( ) , 13 ) ;

it2 = कक्षा :: निम्न परिबंध ( मान। शुरू ( ) , मान। अंत ( ) , 23 ) ;

it3 = कक्षा :: निम्न परिबंध ( मान। शुरू ( ) , मान। अंत ( ) , 33 ) ;

कक्षा :: अदालत

<< ' \एन स्थिति में तत्व 13 के लिए निचला_बाउंड: '

<< ( it1 - मान। शुरू ( ) ) ;

कक्षा :: अदालत

<< ' \एन स्थिति में तत्व 23 के लिए निचला_बाउंड: '

<< ( it2 - मान। शुरू ( ) ) ;

कक्षा :: अदालत

<< ' \एन स्थिति में तत्व 33 के लिए निचला_बाउंड: '

<< ( it3 - मान। शुरू ( ) ) ;

वापस करना 0 ;

}

कोड डबल-नामित मानों के एक std :: वेक्टर को परिभाषित करके शुरू होता है और इसे कुछ मानों के साथ प्रारंभ करता है। यह फिर लूप के लिए वेक्टर के तत्वों को प्रिंट करता है।

अगला, कोड तीन std::vector::iterator चरों को it1, it2, और it3 नाम से घोषित करता है। इन चरों का उपयोग विभिन्न तर्कों के साथ मान वेक्टर पर std::lower_bound() को कॉल करने के परिणामों को संग्रहीत करने के लिए किया जाएगा।

Std::lower_bound() फ़ंक्शन को तीन अलग-अलग मानों के साथ कॉल किया जाता है: 13, 23, और 33। प्रत्येक कॉल पर, lower_bound() एक पुनरावर्तक देता है जो वेक्टर में पहले तत्व की ओर इंगित करता है जो इससे अधिक या उसके बराबर है। निर्दिष्ट मूल्य।

कोड तब वेक्टर में इन तत्वों की स्थिति को घटाकर प्रिंट करता है। std::lower_bound() द्वारा लौटाए गए पुनरावर्तक से value.begin() पुनरावर्तक, जो वेक्टर में तत्व की अनुक्रमणिका देता है।

उत्पादन

निष्कर्ष

सी ++ में निचली_बाउंड () विधि किसी सॉर्ट किए गए कंटेनर में दिए गए मान की पहली घटना को ढूंढती है। यह C++ में <एल्गोरिदम> लाइब्रेरी का एक हिस्सा है और इसका उपयोग सरणियों, वैक्टर और अन्य सॉर्ट किए गए कंटेनरों पर बाइनरी खोज करने के लिए किया जा सकता है। विधि एक पुनरावर्तक देती है जो किसी श्रेणी में पहले तत्व की ओर इंगित करती है जो दिए गए मान से कम नहीं है। इस लेख में lower_bound() मेथड के बारे में और पढ़ें।