ভেক্টর এবং অ্যারের মধ্যে পার্থক্যগুলো নিচে দেওয়া হলো -
- ভেক্টর এলিমেন্ট স্টোর করার একটি সিকোয়েনশিয়াল কন্টেইনার এবং এটি ইন্ডেক্স-ভিত্তিক নয়।
- অ্যারে একই টাইপের এলিমেন্টের একটি ফিক্সড-সাইজ সিকোয়েনশিয়াল কালেকশন স্টোর করে এবং এটি ইন্ডেক্স-ভিত্তিক।
- ভেক্টর ডাইনামিক প্রকৃতির, তাই এলিমেন্ট ইনসার্ট করলে এর আকার বাড়ে।
- অ্যারে ফিক্সড সাইজ, একবার ইনিশিয়ালাইজ করলে রিসাইজ করা যায় না।
- ভেক্টর বেশি মেমরি chiếm করে।
- অ্যারে মেমরি-এফিশিয়েন্ট ডেটা স্ট্রাকচার।
- ভেক্টর এলিমেন্ট অ্যাক্সেস করতে বেশি সময় নেয়।
- অ্যারে এলিমেন্ট কনস্ট্যান্ট টাইমে অ্যাক্সেস করে কারণ এলিমেন্টগুলো কন্টিগ্যুয়াস মেমরিতে থাকে।
ভেক্টর এবং অ্যারে নিচের সিন্ট্যাক্স দিয়ে ডিক্লেয়ার করা যায় -
ভেক্টর ডিক্লেরেশন: vector<datatype> array_name;
অ্যারে ডিক্লেরেশন: type array_name[array_size];
ভেক্টর ইনিশিয়ালাইজেশন: vector<datatype> array_name = {values};
অ্যারে ইনিশিয়ালাইজেশন: datatype array_name[array_size] = {values};std::vector:
উদাহরণ কোড
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> v{ {4, 5, 3}, {2, 7, 6}, {3, 2, 1, 10} };
cout << "the 2D vector is:" << endl;
for (int i = 0; i < v.size(); i++) {
for (int j = 0; j < v[i].size(); j++)
cout << v[i][j] << " ";
cout << endl;
}
return 0;
}আউটপুট
the 2D vector is: 4 5 3 2 7 6 3 2 1 10
std::array:
উদাহরণ কোড
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int,4> a = {10, 20, 30, 40};
cout << "The size of array is: ";
cout << a.size() << endl;
cout << "Maximum number of elements array can hold is: ";
cout << a.max_size() << endl;
cout << "The array elements are (using at()): ";
for (int i = 0; i < 4; i++)
cout << a.at(i) << " ";
cout << endl;
a.fill(1);
cout << "Array after filling operation is: ";
for (int i = 0; i < 4; i++)
cout << a[i] << " ";
return 0;
}আউটপুট
The size of array is: 4 Maximum number of elements array can hold is: 4 The array elements are (using at()): 10 20 30 40 Array after filling operation is: 1 1 1 1