C ++ में एक सरणी और एक वेक्टर के बीच अंतर क्या हैं? मतभेदों का एक उदाहरण पुस्तकालयों, प्रतीकवाद, क्षमताओं आदि को शामिल किया जा सकता है।
सरणी
Arrays में एक विशेष प्रकार के तत्वों की एक विशिष्ट संख्या होती है। ताकि संकलक अंतरिक्ष की आवश्यक मात्रा आरक्षित कर सके जब कार्यक्रम संकलित किया जाता है, तो आपको उन तत्वों के प्रकार और संख्या को निर्दिष्ट करना होगा जो सरणी में परिभाषित होने पर शामिल होंगे। कंपाइलर इस मान को निर्धारित करने में सक्षम होना चाहिए जब प्रोग्राम संकलित किया जाता है। एक बार एक सरणी को परिभाषित करने के बाद, आप सरणी के विशिष्ट तत्वों तक पहुंचने के लिए एक सूचकांक के साथ सरणी के लिए पहचानकर्ता का उपयोग करते हैं। [...] सरणियाँ शून्य-अनुक्रमित हैं; वह पहला तत्व है, जो इंडेक्स 0. पर है। यह इंडेक्सिंग योजना सूचक और सरणियों के बीच C ++ में घनिष्ठ संबंध और सूचक अंकगणित के लिए भाषा को परिभाषित करने वाले नियमों का सूचक है।
- सी ++ पॉकेट संदर्भ
वेक्टर
एक वेक्टर वस्तुओं के एक गतिशील आकार का अनुक्रम है जो सरणी-शैली
operator[]
यादृच्छिक अभिगम प्रदान करता है । सदस्य फ़ंक्शनpush_back
कॉपी कंस्ट्रक्टर के माध्यम से अपने तर्कों को कॉपी करता है, वेक्टर में अंतिम आइटम के रूप में उस कॉपी को जोड़ता है और एक-एक करके उसका आकार बढ़ाता है।pop_back
अंतिम तत्व को हटाकर, सटीक विपरीत करता है। किसी वेक्टर के अंत से आइटम सम्मिलित करना या हटाना निरंतर समय लेता है, और किसी अन्य स्थान से रैखिक समय में सम्मिलित या हटा रहा है। ये वैक्टर की मूल बातें हैं। उनके लिए और भी बहुत कुछ है। ज्यादातर मामलों में, C-style array पर एक वेक्टर आपकी पहली पसंद होना चाहिए। सबसे पहले, वे गतिशील रूप से आकार लेते हैं, जिसका अर्थ है कि वे आवश्यकतानुसार बढ़ सकते हैं। आपको एक इष्टतम स्थिर आकार का पता लगाने के लिए सभी प्रकार के अनुसंधान करने की आवश्यकता नहीं है, जैसा कि सी सरणियों के मामले में है; एक वेक्टर आवश्यकतानुसार बढ़ता है, और यदि आप की आवश्यकता होती है तो इसे बड़े या छोटे रूप से आकार दिया जा सकता है। दूसरे, वैक्टरat
सदस्य फ़ंक्शन के साथ सीमा जाँच की पेशकश करते हैं (लेकिन साथ नहींoperator[]
), ताकि आप कुछ कर सकें, यदि आप अपने प्रोग्राम को क्रैश या खराब होने के बजाय एक अस्पष्ट सूचकांक का संदर्भ देते हैं, तो भ्रष्ट डेटा के साथ निष्पादन जारी है।- सी ++ कुकबुक