Problem

2/8

वेक्टर में इटरेटर

Theory Click to read/hide

इटरेटर्स
कंटेनर (डेटा स्ट्रक्चर)  में तत्वों पर पुनरावृति करने का एक तरीका है इटरेटर (इटरेटर) ), जो कई प्रकार में आते हैं।
 
Iterator - डेटा संरचना जो « इंगित करती है» ; कुछ कंटेनर तत्व पर, और (कुछ कंटेनरों के लिए) पिछले/अगले तत्व पर नेविगेट कर सकते हैं।

वेक्टर सबसे शक्तिशाली - रैंडम-एक्सेस इटरेटर(रैंडम-एक्सेस इटरेटर) का उपयोग करता है।  एक यादृच्छिक अभिगम पुनरावर्तक क्रमिक संचलन के अलावा सदिश के एक मनमाने तत्व तक पहुंच सकता है।

इटरेटर्स के लाभ
1)  तत्वों को हटाने और सूचकांकों (<कोड> [] ) का उपयोग करते हुए तत्वों पर पुनरावृति करते समय, हमें हर समय शेष तत्वों की संख्या पर नज़र रखने की आवश्यकता होती है ताकि वेक्टर से आगे न जा सकें, और एक पुनरावर्तक का उपयोग करके, आप end() का उपयोग कर सकते हैं जो वेक्टर के अंत का संकेत देता है।
2) एक पुनरावर्तक का उपयोग करके, आप वेक्टर में तत्वों को गतिशील रूप से हटा और सम्मिलित कर सकते हैं। 
 
इटरेटर डिक्लेरेशन
1) एक पूर्णांक वेक्टर के लिए एक पुनरावर्तक घोषित करना और इसे वेक्टर में पहले तत्व की ओर इंगित करना। वेक्टर <int> मायवेक्टर = {1, 2, 3, 4, 5}; वेक्टर <int>::iterator it = myvector.begin();
2) पूर्णांक सदिश के लिए पुनरावर्तक घोषित करना और इसे सदिश में अंतिम के बाद तत्व की ओर इंगित करना। वेक्टर <int> मायवेक्टर = {1, 2, 3, 4, 5}; वेक्टर <int>::iterator it = myvector.end(); // पिछले तत्व के बाद तत्व को इंगित करता है, वेक्टर <int>::इटरेटर it1 = myvector.end() - 1; // अंतिम तत्व की ओर इशारा करते हुए।  
मान प्राप्त करना और प्रदर्शित करना
इटेटरेटर द्वारा इंगित तत्व प्राप्त करना और प्रदर्शित करना। cout << *यह;  
इटरेटर पोजीशन ले जाएं
पुनरावर्तक स्थिति को 3 स्थिति आगे ले जाएं। <पूर्व> अग्रिम (यह, 3);  
मौजूदा इटरेटर से नया इटरेटर बनाना
3 पदों को आगे बढ़ाते हुए, मौजूदा एक के आधार पर एक नया पुनरावर्तक बनाएँ। ऑटो आईटी 1 = अगला (यह, 3);  
इटरेटर का उपयोग करके वेक्टर मान प्रदर्शित करना
वेक्टर<int>::इटरेटर इट; के लिए (यह = myvector.begin (); यह! = myvector.end (); ++ यह) {   cout<<*यह<<" ";  }
वेक्टर ट्रैवर्सल
वेक्टर को अंतिम तत्व से पहले तक ले जाने के लिए, एक रिवर्स इटरेटर reverse_iterator का उपयोग किया जाता है, इसे इसके द्वारा प्राप्त किया जाता है:
1) rbegin() -  वेक्टर के अंतिम तत्व की ओर इशारा करते हुए एक रिवर्स इटरेटर लौटाता है, ++ ऑपरेशन के अनुप्रयोग से पिछले तत्व में संक्रमण होता है;
2) rend() -  वेक्टर के पिछले तत्व की ओर इशारा करते हुए एक रिवर्स इटरेटर लौटाता है, ++ ऑपरेशन के अनुप्रयोग से संक्रमण होता है  अगले इसपर। वेक्टर<int>::reverse_iterator it = myvector.rbegin();  // अंतिम तत्व की ओर इशारा करता है वेक्टर<int>::reverse_iterator it = myvector.rend();    // किसी तत्व की ओर इशारा करता है,   // जो पहले वाले से पहले आता है,

Problem

आपको पूर्णांकों का अनुक्रम दिया गया है।  एक प्रोग्राम लिखें जो reverse_iterator का उपयोग करके वेक्टर को उलट देता है।

इनपुट
पहली दी गई संख्या N - अनुक्रम में तत्वों की संख्या (1<= N <= 100)। फिर N संख्याओं को स्पेस से अलग करते हुए लिखा जाता है।
 
आउटपुट
परिणामी वेक्टर के सभी तत्वों को एक पंक्ति में आउटपुट करें, उन्हें रिक्त स्थान से अलग करें।
 
उदाहरण
<टेबल क्लास = "टेबल-एसएम टेबल-बॉर्डर टेबल-स्ट्राइप्ड टेबल-लिस्ट-टेस्ट"> <सिर> <थ वर्ग = "अंक"> # <वें>इनपुट <वें>आउटपुट <शरीर> 1 5
1 2 3 4 5 5 4 3 2 1