इटरेटर) code>), जो कई प्रकार में आते हैं। 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(); // किसी तत्व की ओर इशारा करता है, // जो पहले वाले से पहले आता है, पूर्व>
रैंडम-एक्सेस इटरेटर
end()
reverse_iterator
rbegin()
++
rend()
N
1000 ms 256 Mb Rules for program design and list of errors in automatic problem checking