यहां हम C++ में वेक्टर ओवर ऐरे के कुछ फायदे और नुकसान देखेंगे।
-
वेक्टर टेम्पलेट वर्ग है। यह सी ++ केवल निर्माण करता है। Arrays अंतर्निहित भाषा निर्माण हैं। सरणी विभिन्न भाषाओं में मौजूद हैं।
-
वेक्टर को सूची इंटरफ़ेस के साथ गतिशील सरणियों के रूप में लागू किया जाता है, सरणी को आदिम डेटाटाइप के साथ स्थिर या गतिशील तरीके से लागू किया जा सकता है।
उदाहरण
#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 }
-
यदि हम गतिशील रूप से आवंटित सरणी का आकार प्राप्त करना चाहते हैं, तो हमें आकार आसानी से नहीं मिल सकता है। वैक्टर के लिए, हम स्थिर समय में आकार प्राप्त कर सकते हैं।
-
यदि हम फ़ंक्शन पैरामीटर का उपयोग करके एक सरणी भेजना चाहते हैं, तो हमें आकार या लंबाई के लिए एक और चर भेजना होगा। यदि हम वेक्टर भेजते हैं, तो हमें कुछ अन्य चर पारित करने की आवश्यकता नहीं है।
-
जब तक हम गतिशील रूप से आवंटित नई सरणी का उपयोग नहीं करते हैं, हम एक सरणी वापस नहीं कर सकते हैं, लेकिन हम फ़ंक्शन से वैक्टर वापस कर सकते हैं।