उदाहरण के साथ C ++ मानक टेम्पलेट लाइब्रेरी (STL) में वेक्टर

विषय - सूची:

Anonim

C ++ वेक्टर क्या है?

एक सी ++ VECTOR स्वतः ही आकार बदलने में सक्षम एक गतिशील सरणी है। किसी तत्व को वेक्टर से जोड़ने या हटाने के बाद आकार परिवर्तन होता है। भंडारण कंटेनर द्वारा स्वचालित रूप से नियंत्रित किया जाता है। एक वेक्टर के तत्व सन्निहित भंडारण में संग्रहीत किए जाते हैं। यह C ++ प्रोग्रामर को पुनरावृत्तियों का उपयोग करके वेक्टर तत्वों तक पहुंचने और उन्हें पार करने की अनुमति देता है।

एक वेक्टर में नए डेटा का सम्मिलन इसके अंत में किया जाता है। इसमें एक अंतर समय लगता है। एक वेक्टर से एक तत्व को हटाने में लगातार समय लगता है। कारण यह है कि वेक्टर का आकार बदलने की कोई आवश्यकता नहीं है। वेक्टर की शुरुआत में एक तत्व का सम्मिलन या विलोपन रैखिक समय लेता है।

इस C ++ ट्यूटोरियल में, आप सीखेंगे:

  • C ++ वेक्टर क्या है?
  • वेक्टर का उपयोग कब करें?
  • C ++ में वैक्टर को कैसे शुरू करें
  • Iterators
  • संशोधक
  • उदाहरण 1
  • उदाहरण 2
  • क्षमता
  • उदाहरण 3

वेक्टर का उपयोग कब करें?

C ++ वेक्टर का उपयोग निम्नलिखित परिस्थितियों में किया जाना चाहिए:

  • डेटा तत्वों से निपटने के दौरान जो लगातार बदलते रहते हैं।
  • यदि डेटा का आकार शुरुआत से पहले ज्ञात नहीं है, तो वेक्टर को कंटेनर के अधिकतम आकार को सेट करने की आवश्यकता नहीं होगी।

C ++ में वैक्टर को कैसे शुरू करें

C ++ में वैक्टर का सिंटैक्स है:

vector  name (items)
  • जैसा कि ऊपर दिखाया गया है, हम वेक्टर कीवर्ड से शुरू करते हैं।
  • डेटा-प्रकार वेक्टर में संग्रहीत किए जाने वाले तत्वों का डेटा प्रकार है।
  • नाम वेक्टर या डेटा तत्वों का नाम है।
  • आइटम वेक्टर के डेटा के लिए तत्वों की संख्या को दर्शाते हैं। यह पैरामीटर वैकल्पिक है।

Iterators

पुनरावृत्तियों का उद्देश्य वेक्टर में संग्रहीत तत्वों तक पहुंचने में हमारी सहायता करना है। यह एक ऑब्जेक्ट है जो पॉइंटर की तरह काम करता है। यहाँ C ++ वैक्टर द्वारा समर्थित सामान्य पुनरावृत्तियों हैं:

  • वेक्टर :: start (): यह एक पुनरावृत्ति देता है जो वेक्टर के पहले तत्व को इंगित करता है।
  • वेक्टर :: अंत (): यह एक पुनरावृत्ति देता है जो वेक्टर के पिछले-अंत तत्व को इंगित करता है।
  • वेक्टर :: cbegin (): यह वेक्टर जैसा ही है :: start () , लेकिन इसमें तत्वों को संशोधित करने की क्षमता नहीं है।
  • वेक्टर :: cend (): यह वेक्टर :: end () के समान है लेकिन वेक्टर तत्वों को संशोधित नहीं कर सकता है।

संशोधक

संशोधक का उपयोग निर्दिष्ट डेटा प्रकार के अर्थ को बदलने के लिए किया जाता है। यहाँ C ++ में आम संशोधक हैं:

  • वेक्टर :: push_back (): यह संशोधक पीछे से तत्वों को धकेलता है।
  • वेक्टर :: इंसर्ट (): एक निर्दिष्ट स्थान पर एक वेक्टर में नए आइटम डालने के लिए।
  • वेक्टर :: pop_back (): यह संशोधक वेक्टर तत्वों को पीछे से हटाता है।
  • वेक्टर :: erase (): इसका उपयोग निर्दिष्ट स्थान से तत्वों की एक सीमा को हटाने के लिए किया जाता है।
  • वेक्टर :: स्पष्ट (): यह सभी वेक्टर तत्वों को निकालता है।

उदाहरण 1

#include #include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. हमारे कोड में iostream हेडर फ़ाइल शामिल करें। यह हमें कंसोल से पढ़ने और लिखने की अनुमति देगा।
  2. हमारे कोड में वेक्टर हेडर फ़ाइल शामिल करें। यह हमें C ++ में वैक्टर के साथ काम करने की अनुमति देगा।
  3. एसटीडी नेमस्पेस को शामिल करें ताकि बिना बुलाए अपनी कक्षाओं और कार्यों का उपयोग कर सकें।
  4. मुख्य () फ़ंक्शन को कॉल करें जिसके अंदर कार्यक्रम के तर्क को जोड़ा जाना चाहिए।
  5. {मुख्य () फ़ंक्शन के शरीर की शुरुआत के निशान।
  6. पूर्णांक के एक सेट को संग्रहीत करने के लिए एक सदिश नाम का एक वेक्टर घोषित करें।
  7. वेक्टर पर पुनरावृति करने में हमारी सहायता के लिए एक लूप बनाएं। चर हमें वेक्टर तत्वों पर 1 सेंट से 5 वें तत्वों तक पुनरावृति करने में मदद करेगा ।
  8. पीछे से सदिश राशि में तत्वों को पुश करें। प्रत्येक पुनरावृत्ति के लिए, यह चर का वर्तमान मान वेक्टर में जोड़ देगा, जो 1 से 5 है।
  9. कंसोल पर कुछ टेक्स्ट प्रिंट करें
  10. सदिश अंक के तत्वों पर शुरू से अतीत-अंत तत्व तक पुनरावृति करने के लिए एक एटरेटर चर का उपयोग करें। ध्यान दें कि हम वेक्टर का उपयोग कर रहे हैं :: start () और वेक्टर :: end () पुनरावृत्तियों।
  11. प्रत्येक पुनरावृत्ति के लिए कंसोल पर पुनरावृत्ति चर द्वारा इंगित मूल्यों को प्रिंट करें।
  12. कंसोल पर कुछ टेक्स्ट प्रिंट करें। \ N एक नई लाइन वर्ण है, कर्सर को वहां से प्रिंट करने के लिए नई लाइन पर ले जाता है।
  13. सदिश अंक के तत्वों पर शुरू से अतीत-से-अंत तत्व तक पुनरावृति करने के लिए एक इटरेटर चर का उपयोग करें। ध्यान दें कि हम वेक्टर :: cbegin () और वेक्टर :: cend () पुनरावृत्तियों का उपयोग कर रहे हैं।
  14. प्रत्येक पुनरावृत्ति के लिए कंसोल पर पुनरावृत्ति चर द्वारा इंगित किए गए मानों को प्रिंट करें।
  15. यदि प्रोग्राम सफलतापूर्वक चलता है, तो मुख्य फ़ंक्शन को एक मान वापस करना चाहिए।
  16. मुख्य () फ़ंक्शन के शरीर का अंत।

उदाहरण 2

#include #include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. अपने कार्यों का उपयोग करने के लिए हमारे कोड में iostream हेडर फ़ाइल शामिल करें।
  2. अपने कार्यों का उपयोग करने के लिए हमारे कोड में वेक्टर हेडर फ़ाइल शामिल करें।
  3. अपनी कक्षाओं को बिना बुलाए उपयोग करने के लिए एसटीडी नेमस्पेस शामिल करें।
  4. मुख्य () फ़ंक्शन को कॉल करें। कार्यक्रम तर्क को इसके शरीर के अंदर जोड़ा जाना चाहिए।
  5. मुख्य () फ़ंक्शन के शरीर की शुरुआत।
  6. कुछ पूर्णांक मानों को संग्रहीत करने के लिए एक सदिश नाम का एक वेक्टर घोषित करें
  7. वेक्टर अंकों में 5 तत्वों को संग्रहीत करें। 1 के मूल्य के साथ प्रत्येक।
  8. कंसोल पर कुछ टेक्स्ट प्रिंट करें
  9. वेक्टर अंकों के तत्वों पर पुनरावृति करने के लिए एक इटेरिएटर चर का उपयोग करें।
  10. प्रत्येक पुनरावृत्ति के लिए कंसोल पर वेक्टर अंकों के मूल्यों को प्रिंट करें।
  11. वेक्टर अंकों के अंत में मान 2 जोड़ें।
  12. वेक्टर अंकों के आकार को संग्रहीत करने के लिए एक पूर्णांक चर n घोषित करें।
  13. अन्य पाठ के साथ वेक्टर अंकों के अंतिम मूल्य को प्रिंट करें। इसे 2 वापस करना चाहिए।
  14. सदिश अंक से अंतिम तत्व निकालें। 2 को हटा दिया जाएगा।
  15. कंसोल पर टेक्स्ट प्रिंट करें। टेक्स्ट को प्रिंट करने के लिए \ n कर्सर को नई लाइन पर ले जाता है।
  16. वेक्टर अंकों के तत्वों पर पुनरावृति करने के लिए एक इटेरिएटर चर का उपयोग करें।
  17. प्रत्येक पुनरावृत्ति के लिए कंसोल पर वेक्टर अंकों के मूल्यों को प्रिंट करें।
  18. वेक्टर अंकों की शुरुआत में मान 7 डालें।
  19. अन्य पाठों के साथ वेक्टर अंकों के पहले मूल्य को प्रिंट करें। इसे 7 वापस करना चाहिए।
  20. सदिश अंक से सभी तत्वों को हटा दें।
  21. सभी सामग्री साफ़ करने के बाद अन्य पाठ के साथ वेक्टर संख्या के आकार को प्रिंट करें। इसे 0 वापस करना चाहिए।
  22. मुख्य () फ़ंक्शन के शरीर का अंत।

क्षमता

वेक्टर की क्षमता निर्धारित करने के लिए निम्नलिखित कार्यों का उपयोग करें:

  • आकार () - यह एक वेक्टर में वस्तुओं की संख्या लौटाता है।
  • Max_size () -यह सबसे अधिक संख्या में आइटम देता है जो एक वेक्टर स्टोर कर सकता है।
  • क्षमता () -यह एक सदिश को आवंटित भंडारण स्थान की राशि लौटाता है।
  • आकार () -यह n आइटम रखने के लिए कंटेनर का आकार बदलता है। यदि वेक्टर का वर्तमान आकार n से अधिक है, तो पीछे की वस्तुओं को वेक्टर से हटा दिया जाएगा। यदि वेक्टर का वर्तमान आकार n से छोटा है, तो वेक्टर के पीछे अतिरिक्त आइटम जोड़े जाएंगे।
  • यदि कोई वेक्टर खाली है, तो खाली () -i t सही है, अन्यथा, यह गलत है।

उदाहरण 3

#include #include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"<

आउटपुट:

यहाँ कोड का एक स्क्रीनशॉट है:

कोड स्पष्टीकरण:

  1. इसके फ़ंक्शन का उपयोग करने के लिए हमारे कोड में iostream हेडर फ़ाइल शामिल करें।
  2. अपने कार्यों का उपयोग करने के लिए हमारे कोड में वेक्टर हेडर फ़ाइल शामिल करें।
  3. इसे कॉल किए बिना अपनी कक्षाओं का उपयोग करने के लिए हमारे कोड में std नाम स्थान शामिल करें।
  4. मुख्य () फ़ंक्शन को कॉल करें। इस फ़ंक्शन के शरीर के भीतर प्रोग्राम लॉजिक जोड़ा जाना चाहिए।
  5. पूर्णांक को संग्रहीत करने के लिए वेक्टर 1 नामक वेक्टर बनाएं।
  6. 1 से 10 तक के मानों के साथ चर x बनाने के लिए लूप के लिए उपयोग करें।
  7. वेरिएबल x के मानों को वेक्टर में पुश करें।
  8. कंसोल पर अन्य पाठ के साथ वेक्टर का आकार प्रिंट करें।
  9. कंसोल पर अन्य पाठ के साथ वेक्टर की क्षमता प्रिंट करें।
  10. वेक्टर की अधिकतम संख्या को सांत्वना पर अन्य पाठ के साथ रख सकते हैं।
  11. केवल 5 तत्वों को रखने के लिए वेक्टर का आकार बदलें।
  12. वेक्टर के नए आकार को अन्य पाठ के साथ प्रिंट करें।
  13. जांचें कि क्या वेक्टर खाली नहीं है।
  14. यदि वेक्टर खाली नहीं है, तो कंसोल पर टेक्स्ट प्रिंट करें।
  15. यह बताने के लिए कि वेक्टर खाली है तो क्या करना है।
  16. वेक्टर खाली होने पर कंसोल पर प्रिंट करने के लिए टेक्स्ट।
  17. कार्यक्रम सफल होने पर मूल्य वापस करना चाहिए।
  18. मुख्य () फ़ंक्शन बॉडी का अंत।

सारांश:

  • C ++ वेक्टर एक डायनेमिक एरे है जो किसी एलीमेंट के जुड़ने या उसमें से डिलीट होने पर अपने आप ही आकार बदलने में सक्षम है।
  • एक वेक्टर के लिए भंडारण कंटेनर द्वारा स्वचालित रूप से नियंत्रित किया जाता है।
  • सदिश के तत्वों को सन्निहित भंडारण में संग्रहीत किया जाता है ताकि इसे पुनरावृत्तियों का उपयोग करके एक्सेस किया जा सके।
  • एक वेक्टर में नए डेटा का सम्मिलन इसके अंत में किया जाता है।
  • एक वेक्टर में डेटा का सम्मिलन एक अंतर समय लेता है।
  • एक वेक्टर से एक तत्व को हटाने में लगातार समय लगता है।
  • किसी तत्व को शुरुआत में डालने या हटाने में रैखिक समय लगता है।
  • लगातार बदलते रहने वाले डेटा तत्वों से निपटने के दौरान वैक्टर का उपयोग किया जाना चाहिए।
  • इसके अलावा, आप वैक्टर का उपयोग कर सकते हैं यदि डेटा का आकार शुरुआत से पहले ज्ञात नहीं है।