यहां हम C++ में वेक्टर के सरणी पर कुछ लाभ और नुकसान देखेंगे।
वेक्टर एक टेम्पलेट क्लास है। यह केवल C++ का निर्माण है। सरणी बिल्ट-इन भाषा निर्माण है। सरणी विभिन्न भाषाओं में मौजूद है।
वेक्टर को लिस्ट इंटरफेस के साथ डायनामिक सरणी के रूप में कार्यान्वित किया जाता है, सरणी को प्रिमिटिव डेटा प्रकारों के साथ स्थिर या डायनामिक तरीके से कार्यान्वित किया जा सकता है।
उदाहरण
#include<iostream> #include<vector> using namespace std; int main() { int array[10]; //statically allocated array int* arr = new int[10]; //dynamically allocated array vector<int> vec; } सरणी का आकार निश्चित होता है। जब एक सरणी बनाई जाती है, तो हम आकार नहीं बदल सकते। वेक्टर का आकार डायनामिक होता है। यदि हम नए तत्व जोड़ते हैं, यदि स्थान उपलब्ध नहीं है, तो यह इसके लिए नई जगह बनाता है, और कुछ अतिरिक्त स्थान भी।
यदि सरणी डायनामिक रूप से आवंटित की गई है, तो हमें इसे मैन्युअली डिएलोकेट करना होगा। लेकिन वेक्टर में हमें इसे डिएलोकेट करने की आवश्यकता नहीं है, यह स्वचालित रूप से डिएलोकेट हो जाता है।
उदाहरण
#include<iostream> #include<vector> using namespace std; int main() { int* arr = new int[10]; //dynamically allocated array delete(arr); //deallocate manually vector<int> vec; //will be deallocated when variable is out of scope } यदि हम डायनामिक रूप से आवंटित सरणी का आकार प्राप्त करना चाहते हैं, तो हम आसानी से आकार प्राप्त नहीं कर सकते। वेक्टर के लिए, हम स्थिर समय में आकार प्राप्त कर सकते हैं।
यदि हम फ़ंक्शन पैरामीटर के रूप में एक सरणी भेजना चाहते हैं, तो हमें आकार या लंबाई के लिए एक और वेरिएबल भेजना होगा। यदि हम वेक्टर भेजते हैं, तो हमें कोई अन्य वेरिएबल पास करने की आवश्यकता नहीं है।
हम एक सरणी को वापस नहीं कर सकते जब तक कि हम डायनामिक रूप से आवंटित नई सरणी का उपयोग न करें, लेकिन हम फ़ंक्शन से वेक्टर वापस कर सकते हैं।