C++ में वेक्टर (<कोड>वेक्टर)
C++ में एक प्रकार की डायनामिक ऐरे वेक्टर (वेक्टर) है।
वेक्टर (<कोड>वेक्टर) — यह एक डेटा संरचना है जो पहले से ही गतिशील सरणी का एक मॉडल है।
C++ में साधारण सरणियों में उनके साथ काम करने के लिए कोई विशेष कार्य और तरीके नहीं होते हैं। C++ में वेक्टर डेटा संरचनाएं हैं जिनमें तत्वों के साथ काम करने के लिए अधिक अतिरिक्त फ़ंक्शन होते हैं।
वेक्टर बनाना
#शामिल <वेक्टर>
...
मुख्य प्रवेश बिंदु()
{
// 10 तत्वों के लिए पूर्णांक वेक्टर v की घोषणा
वेक्टर <int> वी (10);
// शून्य प्रारंभिक मानों के साथ समान (वेक्टर v1)
वेक्टर <int> v1(10, 0);
...
पूर्व>
वेक्टर पैडिंग
पद्धति 1
हम n -th तत्वों के लिए मेमोरी आवंटित करते हैं और उन्हें कीबोर्ड से पढ़कर भरते हैं।
इंटन;
सिने>> एन;
वेक्टर <इंट> ए (एन);
के लिए (int i = 0; i < n; i++)
सिने>> ए[i];
पद्धति 2
तत्वों की संख्या अज्ञात होने पर दूसरी विधि की आवश्यकता होती है। सबसे पहले, एक खाली वेक्टर बनाया जाता है, और फिर, push_back() पद्धति का उपयोग करके, वेक्टर के अंत में एक नया तत्व जोड़ा जाता है।
इंटन;
सिने>> एन;
वेक्टर<इंट>ए;
के लिए (int i = 0; i < n; i++) {
आईएनटीबी;
सिने>> बी;
ए.पुश_बैक (बी);
}
पूर्व>
वेक्टर आकार
int बी = ए आकार ();
पूर्व>
|
इटरेटर्स
कंटेनर (डेटा स्ट्रक्चर) में तत्वों पर पुनरावृति करने का एक तरीका है इटरेटर ( इटरेटर) 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(); // किसी तत्व की ओर इशारा करता है,
// जो पहले वाले से पहले आता है,
पूर्व>
|