Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Khác biệt giữa std::vector và std::array trong C++


Dưới đây là những khác biệt chính giữa vector và array:

  • vector là container tuần tự, kích thước động, tự mở rộng khi chèn.
  • array kích thước cố định, dựa trên chỉ số, cấp phát bộ nhớ liên tục.
  • vector tốn nhiều bộ nhớ hơn do quản lý dung lượng.
  • array hiệu quả bộ nhớ, truy cập thời gian hằng số.
  • vector truy 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