C++ प्रोग्रामिंग लैंग्वेज लूप के लिए रेंज-आधारित एक अपेक्षाकृत हाल ही की विशेषता है जिसे पहली बार C++11 में पेश किया गया था। लूप के लिए रेंज-आधारित सीमा पर एक लूप निष्पादित करें। वे किसी भी कंटेनर के साथ काम करते हैं जिसमें एक पुनरावर्तक होता है, जिसमें सरणियाँ, वैक्टर, मानचित्र, सेट और यहां तक कि उपयोगकर्ता-परिभाषित प्रकार भी शामिल होते हैं जो आवश्यक संचालन को लागू करते हैं।
लूप के लिए रेंज-आधारित सिंटेक्स
ए लूप के लिए रेंज-आधारित बहुत सीधा सिंटैक्स है। यह लूप वेरिएबल, पुनरावृति करने के लिए कंटेनर या रेंज और एक कोलन से बना होता है।
के लिए ( रेंज_डिक्लेरेशन: रेंज_एक्सप्रेशन ) लूप स्टेटमेंट
रेंज_डिक्लेरेशन: रेंज-डिक्लेरेशन एक वेरिएबल की घोषणा है, जो रेंज-कंपोनेंट एक्सप्रेशन के तत्वों के समान प्रकार का है। स्वचालित रूप से एक में घटकों के प्रकार का निर्धारण करने के लिए रेंज_अभिव्यक्ति , ऑटो कीवर्ड का अक्सर उपयोग किया जाता है।
रेंज_एक्सप्रेशन: तत्वों की एक सूची का प्रतिनिधित्व करने वाली प्रत्येक अभिव्यक्ति एक है रेंज_अभिव्यक्ति .
लूप स्टेटमेंट: for लूप की बॉडी में एक या एक से अधिक स्टेटमेंट होते हैं जिन्हें रेंज_एक्सप्रेशन के अंत तक दोहराया जाना चाहिए।
रेंज-बेस्ड फॉर लूप को निष्पादित करने के तरीके
इसके लिए तीन तरीके इस्तेमाल किए जा सकते हैं लूप के लिए रेंज-आधारित .
विधि 1: सारणियों का उपयोग करना
लूप के लिए रेंज-आधारित इस तरह सरणियों का उपयोग करके चलाया जा सकता है।
#शामिलनेमस्पेस एसटीडी का उपयोग करना;
मुख्य प्रवेश बिंदु ( ) {
int numArray [ ] = { 6 , 7 , 8 , 9 , 10 } ;
के लिए ( int n : numArray ) {
अदालत << एन << '' ;
}
वापस करना 0 ;
}
उपरोक्त कोड में, numArray नामक एक पूर्णांक सरणी प्रारंभ की गई थी। फिर numArray के तत्वों को a का उपयोग करके प्रिंट किया गया लूप के लिए रेंज-आधारित .
उत्पादन
विधि 2: सदिशों का उपयोग करना
लूप के लिए रेंज-आधारित इस तरह के वैक्टर का उपयोग करके चलाया जा सकता है।
#शामिल#शामिल <वेक्टर>
नेमस्पेस एसटीडी का उपयोग करना;
मुख्य प्रवेश बिंदु ( )
{
इंट एक्स;
वेक्टर < int यहाँ > में = { 1 , 2 , 3 , 4 , 5 } ;
के लिए ( इंट एक्स: वी )
{
अदालत << एक्स << '' ;
}
वापस करना 0 ;
}
उपरोक्त कोड में, एक वेक्टर कहा जाता है में आरंभीकृत किया गया था। यहाँ, वेक्टर v के तत्वों को a का उपयोग करके प्रिंट किया गया था लूप के लिए रेंज-आधारित।
उत्पादन
विधि 3: संग्रह के अंदर लूप की घोषणा करें
लूप के लिए रेंज-आधारित लूप के अंदर भी घोषित किया जा सकता है। यह एक वास्तविक सरणी या वेक्टर के समान कार्य करता है।
#शामिलनेमस्पेस एसटीडी का उपयोग करना;
मुख्य प्रवेश बिंदु ( ) {
के लिए ( इंट एन : { 5 , 10 , पंद्रह , बीस , 25 } ) {
अदालत << एन << '' ;
}
वापस करना 0 ;
}
उपरोक्त कोड में, संग्रह लूप के अंदर ही घोषित किया जाता है और फिर मुद्रित किया जाता है।
उत्पादन
लूप के लिए आधारित रेंज के फायदे और नुकसान
लूप के लिए रेंज-आधारित पारंपरिक से अधिक लाभ है के लिए कई तरह से लूप करता है, खासकर कंटेनर के साथ काम करते समय। जैसा कि लूप वेरिएबल को लूप के अंदर परिभाषित किया गया है और रेंज स्पष्ट रूप से बताई गई है, यह कोड को बहुत छोटा और समझने में आसान बनाता है। वे सुरक्षित भी हैं, क्योंकि एक-एक करके त्रुटियों या अनुक्रमणन संबंधी अन्य गलतियों के बारे में चिंता करने की कोई आवश्यकता नहीं है। वे अधिक अनुकूलनीय हैं क्योंकि वे किसी भी कंटेनर का उपयोग कर सकते हैं, चाहे उसका प्रकार या आकार कुछ भी हो। लूप के लिए रेंज-आधारित इसके कई लाभ हैं, जिनमें से एक यह है कि यह हमारे कोड को साफ और समझने में आसान बनाता है।
लूप के लिए रेंज-आधारित हालांकि कुछ प्रतिबंध हैं। जैसा कि लूप चर वास्तविक तत्व के बजाय तत्व की एक प्रति या संदर्भ है, इसका उपयोग कंटेनर के तत्वों को बदलने के लिए नहीं किया जा सकता है। चूंकि पूरी श्रृंखला लगातार पुनरावृत्त होती है, हम किसी भी तत्व को छोड़ नहीं सकते हैं या डेटा के केवल एक हिस्से पर पुनरावृति नहीं कर सकते हैं।
निष्कर्ष
लूप के लिए रेंज-आधारित C++ प्रोग्रामिंग भाषा की एक शक्तिशाली और बहुमुखी विशेषता है। लूप के लिए पारंपरिक की तुलना में, वे कंटेनरों के माध्यम से पुनरावृति और कोड को कम करने के लिए एक स्पष्ट और सुपाठ्य दृष्टिकोण के साथ बढ़ी हुई सुरक्षा और लचीलेपन की पेशकश करते हैं। लूप के लिए रेंज-आधारित सी ++ प्रोग्रामर के लिए सीखना जरूरी है।