এখানে আমরা 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
} -
আমরা যদি গতিশীলভাবে বরাদ্দকৃত অ্যারের আকার পেতে চাই তবে আমরা আকারটি সহজে পেতে পারি না। ভেক্টরের জন্য, আমরা ধ্রুবক সময়ের মধ্যে আকার পেতে পারি।
-
আমরা যদি ফাংশন প্যারামিটার ব্যবহার করে একটি অ্যারে পাঠাতে চাই, তাহলে আকার বা দৈর্ঘ্যের জন্য আমাদের আরেকটি ভেরিয়েবল পাঠাতে হবে। আমরা যদি ভেক্টর পাঠাই, আমাদের অন্য কিছু ভেরিয়েবল পাস করার দরকার নেই।
-
আমরা একটি অ্যারে ফেরত দিতে পারি না যদি না আমরা গতিশীলভাবে বরাদ্দ করা নতুন অ্যারে ব্যবহার করি, তবে আমরা ফাংশন থেকে ভেক্টর ফিরিয়ে দিতে পারি।