वेक्टर इन C++ मानक टेम्पलेट लाइब्रेरी (एसटीएल) उदाहरण के साथ
⚡ स्मार्ट सारांश
वेक्टर इन C++ यह स्टैंडर्ड टेम्प्लेट लाइब्रेरी से एक डायनामिक ऐरे है जो तत्वों को जोड़ने या हटाने पर स्वचालित रूप से अपना आकार बदलता है, और आइटमों को सन्निहित मेमोरी में संग्रहीत करता है ताकि प्रोग्रामर इटरेटर का उपयोग करके उन तक पहुंच सकें और उन्हें ट्रैवर्स कर सकें।

क्या है एक C++ वेक्टर?
A C++ वेक्टर एक गतिशील सरणी है जो अपने आप अपना आकार बदलने में सक्षम है। वेक्टर में कोई तत्व जोड़े जाने या हटाए जाने के बाद आकार बदलना होता है। स्टोरेज को कंटेनर द्वारा स्वचालित रूप से नियंत्रित किया जाता है। वेक्टर के तत्व सन्निहित स्टोरेज में संग्रहीत किए जाते हैं। यह अनुमति देता है C++ प्रोग्रामर को इटरेटर्स का उपयोग करके वेक्टर तत्वों तक पहुंचने और उन्हें पार करने में सक्षम बनाना।
किसी वेक्टर में नया डेटा उसके अंत में डाला जाता है। इसमें अवकल समय लगता है। वेक्टर से किसी तत्व को हटाने में स्थिर समय लगता है। इसका कारण यह है कि वेक्टर का आकार बदलने की आवश्यकता नहीं होती है। वेक्टर के प्रारंभ में किसी तत्व को डालने या हटाने में रैखिक समय लगता है।
वेक्टर के साथ कोड लिखने से पहले, यह जानना मददगार होता है कि वे कब उपयोग करने के लिए सही कंटेनर हैं।
वेक्टर का उपयोग कब करें?
A C++ वेक्टर का उपयोग निम्नलिखित परिस्थितियों में किया जाना चाहिए:
- जब लगातार बदलते रहने वाले डेटा तत्वों से निपटना हो।
- यदि डेटा का आकार शुरू करने से पहले ज्ञात नहीं है, तो वेक्टर के लिए आपको कंटेनर का अधिकतम आकार निर्धारित करने की आवश्यकता नहीं होगी।
वेक्टर को कैसे प्रारंभ करें C++
वेक्टरों का वाक्यविन्यास C++ है:
vector <data-type> name (items)
जैसा कि ऊपर दिखाया गया है, हम वेक्टर कीवर्ड से शुरू करते हैं।
- RSI डेटा प्रकार यह वेक्टर में संग्रहित किए जाने वाले तत्वों का डेटा प्रकार है।
- RSI नाम यह वेक्टर या डेटा तत्वों का नाम है।
- RSI आइटम यह पैरामीटर वेक्टर डेटा के तत्वों की संख्या को दर्शाता है। यह पैरामीटर वैकल्पिक है।
एक बार वेक्टर बन जाने के बाद, इटरेटर आपको इसके तत्वों के बीच घूमने का एक पॉइंटर जैसा तरीका प्रदान करते हैं।
इटरेटर्स
इटरेटर का उद्देश्य वेक्टर में संग्रहीत तत्वों तक पहुँचने में हमारी सहायता करना है। यह एक ऐसा ऑब्जेक्ट है जो पॉइंटर की तरह काम करता है। यहाँ कुछ सामान्य इटरेटर दिए गए हैं जो समर्थित हैं। C++ वैक्टर:
- वेक्टर::शुरुआत(): यह एक इटरेटर देता है जो वेक्टर के पहले तत्व की ओर इशारा करता है।
- वेक्टर::अंत(): यह एक इटरेटर देता है जो वेक्टर के पिछले-अंत तत्व की ओर इशारा करता है।
- वेक्टर::cbegin(): यह vector::begin() के समान है, लेकिन इसमें तत्वों को संशोधित करने की क्षमता नहीं है।
- वेक्टर::cend(): यह vector::end() के समान है लेकिन वेक्टर तत्वों को संशोधित नहीं कर सकता है।
निम्नलिखित उदाहरण एक वेक्टर को भरता है और फिर परिवर्तनीय और स्थिर दोनों प्रकार के पुनरावर्तकों का उपयोग करके उस पर कार्य करता है।
उदाहरण 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
Code स्पष्टीकरण:
- हमारे कोड में iostream हेडर फ़ाइल शामिल करें। यह हमें कंसोल से पढ़ने और उसमें लिखने की अनुमति देगा।
- हमारे कोड में वेक्टर हेडर फ़ाइल शामिल करें। यह हमें वेक्टर के साथ काम करने की अनुमति देगा C++.
- std नामस्थान को शामिल करें ताकि इसे कॉल किए बिना इसके क्लासों और फ़ंक्शनों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करें जिसके अंदर प्रोग्राम का तर्क जोड़ा जाना चाहिए।
- { main() फ़ंक्शन के मुख्य भाग के आरंभ को चिह्नित करता है।
- पूर्णांकों के एक सेट को संग्रहीत करने के लिए nums नामक एक वेक्टर घोषित करें।
- वेक्टर पर पुनरावृति करने के लिए एक फॉर लूप बनाएं। वेरिएबल हमें वेक्टर के पहले से लेकर पांचवें तत्व तक के सभी तत्वों पर पुनरावृति करने में मदद करेगा।
- तत्वों को पीछे से वेक्टर num में धकेलें। प्रत्येक पुनरावृत्ति के लिए, यह वेरिएबल a का वर्तमान मान वेक्टर में जोड़ देगा, जो 1 से 5 तक है।
- कंसोल पर कुछ पाठ प्रिंट करें.
- वेक्टर nums के तत्वों पर आरंभ से लेकर अंतिम तत्व तक पुनरावृति करने के लिए एक पुनरावर्तक चर a का उपयोग करें। ध्यान दें कि हम vector::begin() और vector::end() पुनरावर्तक का उपयोग कर रहे हैं।
- प्रत्येक पुनरावृत्ति के लिए कंसोल पर इटरेटर चर a द्वारा इंगित मानों को प्रिंट करें।
- कंसोल पर कुछ टेक्स्ट प्रिंट करें। \n एक नई लाइन का कैरेक्टर है, वहां से प्रिंट करने के लिए कर्सर को नई लाइन पर ले जाएं।
- वेक्टर nums के तत्वों पर शुरुआत से लेकर अंत तक पुनरावृति करने के लिए एक पुनरावृति चर का उपयोग करें। ध्यान दें कि हम vector::cbegin() और vector::cend() पुनरावृति का उपयोग कर रहे हैं।
- प्रत्येक पुनरावृत्ति के लिए कंसोल पर इटरेटर चर a द्वारा इंगित मानों को प्रिंट करें।
- यदि प्रोग्राम सफलतापूर्वक चलता है तो मुख्य फ़ंक्शन को एक मान लौटाना चाहिए।
- main() फ़ंक्शन के मुख्य भाग का अंत.
संशोधक
संशोधक निर्दिष्ट डेटा प्रकार के अर्थ को बदलने के लिए उपयोग किए जाते हैं। यहाँ सामान्य संशोधक दिए गए हैं C++:
- वेक्टर::पुश_बैक(): यह संशोधक तत्वों को पीछे से धकेलता है।
- वेक्टर::insert(): किसी निर्दिष्ट स्थान पर वेक्टर में नये आइटम सम्मिलित करने के लिए।
- वेक्टर::pop_back(): यह संशोधक पीछे से वेक्टर तत्वों को हटा देता है।
- वेक्टर::मिटाएँ(): इसका उपयोग निर्दिष्ट स्थान से तत्वों की एक श्रृंखला को हटाने के लिए किया जाता है।
- वेक्टर::स्पष्ट(): यह सभी वेक्टर तत्वों को हटा देता है।
अगले उदाहरण में, इन मॉडिफायर्स को क्रम से लागू करके देखा जाएगा कि एक वेक्टर में क्या परिवर्तन होता है।
उदाहरण 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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(); }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
Code स्पष्टीकरण:
- इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में iostream हेडर फ़ाइल शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में वेक्टर हेडर फ़ाइल शामिल करें।
- std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी कक्षाओं का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इसके बॉडी के अंदर जोड़ा जाना चाहिए।
- main() फ़ंक्शन के मुख्य भाग का प्रारंभ.
- कुछ पूर्णांक मानों को संग्रहीत करने के लिए nums नामक एक वेक्टर घोषित करें।
- वेक्टर nums में 5 तत्व संग्रहित करें। प्रत्येक का मान 1 है।
- कंसोल पर कुछ पाठ प्रिंट करें.
- वेक्टर nums के तत्वों पर पुनरावृति करने के लिए पुनरावर्तक चर a का उपयोग करें।
- प्रत्येक पुनरावृत्ति के लिए कंसोल पर वेक्टर संख्याओं के मान प्रिंट करें।
- सदिश nums के अंत में मान 2 जोड़ें।
- सदिश संख्याओं के आकार को संग्रहीत करने के लिए एक पूर्णांक चर n घोषित करें।
- अन्य टेक्स्ट के साथ वेक्टर nums का अंतिम मान प्रिंट करें। इसे 2 लौटाना चाहिए।
- सदिश nums से अंतिम तत्व हटाएँ। 2 हटा दिया जाएगा।
- कंसोल पर टेक्स्ट प्रिंट करें। \n टेक्स्ट को प्रिंट करने के लिए कर्सर को नई लाइन पर ले जाता है।
- वेक्टर nums के तत्वों पर पुनरावृति करने के लिए पुनरावर्तक चर a का उपयोग करें।
- प्रत्येक पुनरावृत्ति के लिए कंसोल पर वेक्टर संख्याओं के मान प्रिंट करें।
- सदिश nums के आरंभ में मान 7 डालें।
- अन्य टेक्स्ट के साथ वेक्टर nums का पहला मान प्रिंट करें। इसे 7 लौटाना चाहिए।
- वेक्टर nums से सभी तत्वों को हटाएँ.
- सभी सामग्री साफ़ करने के बाद अन्य टेक्स्ट के साथ वेक्टर संख्या का आकार प्रिंट करें। इसे 0 लौटाना चाहिए।
- main() फ़ंक्शन के मुख्य भाग का अंत.
क्षमता
निम्न का उपयोग करें कार्यों किसी सदिश की क्षमता निर्धारित करने के लिए:
- आकार() – यह एक वेक्टर में मौजूद वस्तुओं की संख्या लौटाता है।
- अधिकतम आकार() – यह वेक्टर में संग्रहीत की जा सकने वाली वस्तुओं की अधिकतम संख्या लौटाता है।
- क्षमता() – यह किसी वेक्टर को आवंटित भंडारण स्थान की मात्रा लौटाता है।
- आकार बदलें() – यह कंटेनर का आकार बदलकर उसमें n आइटम समाहित कर देता है। यदि वेक्टर का वर्तमान आकार n से अधिक है, तो वेक्टर के पीछे के आइटम हटा दिए जाएंगे। यदि वेक्टर का वर्तमान आकार n से कम है, तो वेक्टर के पीछे अतिरिक्त आइटम जोड़ दिए जाएंगे।
- खाली() – यदि वेक्टर खाली है तो यह true लौटाता है। अन्यथा, यह false लौटाता है।
यह अंतिम उदाहरण उपरोक्त क्षमता कार्यों का उपयोग करके एक वेक्टर के भंडारण की रिपोर्ट करता है और उसे समायोजित करता है।
उदाहरण 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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"<<endl; else cout << "Vector is empty"<<endl; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
Code स्पष्टीकरण:
- इसके फ़ंक्शन का उपयोग करने के लिए हमारे कोड में iostream हेडर फ़ाइल शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए अपने कोड में वेक्टर हेडर फ़ाइल शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- पूर्णांकों को संग्रहीत करने के लिए vector1 नामक एक वेक्टर बनाएं।
- 1 से 10 तक के मानों वाला चर x बनाने के लिए for loop का उपयोग करें।
- चर x के मानों को सदिश में डालें।
- कंसोल पर अन्य पाठ के साथ वेक्टर का आकार प्रिंट करें।
- कंसोल पर अन्य पाठ के साथ वेक्टर की क्षमता को प्रिंट करें।
- कंसोल पर अन्य टेक्स्ट के साथ-साथ वेक्टर द्वारा धारण की जा सकने वाली अधिकतम संख्या में आइटमों को प्रिंट करें।
- वेक्टर का आकार बदलें ताकि उसमें केवल 5 तत्व रह सकें।
- अन्य पाठ के साथ वेक्टर का नया आकार प्रिंट करें।
- जाँच करें कि क्या वेक्टर रिक्त नहीं है।
- यदि वेक्टर रिक्त नहीं है तो कंसोल पर पाठ प्रिंट करें।
- यदि वेक्टर रिक्त हो तो क्या करना है, यह बताने के लिए else कथन का उपयोग करें।
- यदि वेक्टर रिक्त है तो कंसोल पर प्रिंट करने के लिए पाठ.
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन बॉडी का अंत.





