Dưới đây là những khác biệt chính giữa vector và array:
vectorlà container tuần tự, kích thước động, tự mở rộng khi chèn.arraykích thước cố định, dựa trên chỉ số, cấp phát bộ nhớ liên tục.vectortốn nhiều bộ nhớ hơn do quản lý dung lượng.arrayhiệu quả bộ nhớ, truy cập thời gian hằng số.vectortruy cập chậm hơn do gián tiếp qua con trỏ nội bộ.
Khai báo và khởi tạo
// vector
vector<datatype> ten;
vector<datatype> ten = {values};
// array
datatype ten[kich_thuoc];
datatype ten[kich_thuoc] = {values};
Ví dụ std::vector (2D)
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> v{ {4,5,3}, {2,7,6}, {3,2,1,10} };
cout << "Vector 2D:" << endl;
for (auto &row : v) {
for (int x : row) cout << x << " ";
cout << endl;
}
return 0;
}
Kết quả
Vector 2D: 4 5 3 2 7 6 3 2 1 10
Ví dụ std::array
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int,4> a = {10,20,30,40};
cout << "Kich thuoc: " << a.size() << endl;
cout << "Max size: " << a.max_size() << endl;
cout << "Phan tu (at()): ";
for (int i=0; i<4; i++) cout << a.at(i) << " "; cout << endl;
a.fill(1);
cout << "Sau fill(1): ";
for (int x : a) cout << x << " ";
return 0;
}
Kết quả
Kich thuoc: 4 Max size: 4 Phan tu (at()): 10 20 30 40 Sau fill(1): 1 1 1 1