Vector trong c++

Vector trong C++ là gì

43
  1. Vector là gì?
  2. Mảng và vector
  3. Khai báo vector
  4. Thêm phần tử bằng push_back()
  5. Lấy phần tử trong vector
  6. Đếm số phần tử bằng size()
  7. Duyệt vector bằng vòng lặp for
  8. Cách viết ngắn hơn
  9. So sánh Python và C++ Python
  10. Câu ghi nhớ
  11. Một số hàm khi sử dụng vector

1. Vector là gì?

Hãy tưởng tượng vector giống như một chiếc túi thông minh.

Khi cần thêm đồ vào túi, chiếc túi có thể tự mở rộng.

Trong lập trình, vector là một danh sách có thể chứa nhiều dữ liệu và có thể thêm hoặc bớt phần tử.

2. Mảng và vector

Mảng thông thường:

 int a[5]; 

Mảng này có đúng 5 vị trí:

a[0] a[1] a[2] a[3] a[4]
  [ ]   [ ]    [ ]    [ ]    [ ]

Kích thước của mảng thường được xác định ngay từ đầu.

Vector:

vector<int> a; 

Vector có thể bắt đầu rỗng và thêm dữ liệu dần dần.

Ban đầu: [ ]
Thêm 10: [10]
Thêm 20: [10, 20]
Thêm 30: [10, 20, 30]

3. Khai báo vector

Muốn sử dụng vector, chúng ta cần:

#include <vector>
using namespace std;

Khai báo một vector chứa số nguyên:

vector<int> ds;

Có nghĩa là:

Tạo một danh sách tên là ds, dùng để chứa các số nguyên.

4. Thêm phần tử bằng push_back()

vector<int> ds;
ds.push_back(5);
ds.push_back(8);
ds.push_back(10);

Kết quả:

 ds = [5, 8, 10] 

push_back() có nghĩa là:

Thêm một phần tử vào phía cuối vector.

5. Lấy phần tử trong vector

vector<int> ds = {5, 8, 10}; 

Vị trí trong vector bắt đầu từ số 0:

Vị trí Giá trị
ds[0] 5
ds[1] 8
ds[2] 10

Ví dụ:

cout << ds[0]; 

Kết quả:

 5 

6. Đếm số phần tử bằng size()

vector<int> ds = {5, 8, 10};
cout << ds.size();

Kết quả:

 3 

size() cho biết vector hiện có bao nhiêu phần tử.

7. Duyệt vector bằng vòng lặp for

vector<int> ds = {5, 8, 10};
for (int i = 0; i < ds.size(); i++)
{
  cout << ds[i] << endl;
}

Kết quả:

 5 8 10 

Giải thích:

 i = 0 → ds[0] → 5 i = 1 → ds[1] → 8 i = 2 → ds[2] → 10 

8. Cách viết ngắn hơn

for (int x : ds) 
{
  cout << x << endl;
}

Có thể hiểu là:

Lần lượt lấy từng phần tử trong vector ds đưa vào biến x.

 ds = [5, 8, 10]  x = 5 x = 8 x = 10 

9. So sánh Python và C++ Python

Python

so3 = []
so3.append(235)

c++

vector<int> so3;
so3.push_back(235);

Python C++ Ý nghĩa
list vector Danh sách dữ liệu
append() push_back() Thêm phần tử
len() size() Đếm số phần tử

10. Câu ghi nhớ

Mảng giống như một chiếc hộp có số ngăn cố định.

Vector giống như một chiếc túi thông minh: muốn thêm đồ thì túi có thể tự mở rộng.

#include <iostream>
#include <vector>
using namespace std;
int main()
{
  vector<int> ds;
  ds.push_back(5);
  ds.push_back(8);
  ds.push_back(10);
  for (int x : ds)
  {
    cout << x << endl;
  }
  return 0; }

Kết quả

 5 8 10 

11. Một số hàm khi sử dụng vector

Các hàm Vector trong C++

1. push_back()

Thêm một phần tử vào cuối vector.

vector<int> a = {1, 2, 3};

a.push_back(4);

Kết quả: 1 2 3 4

2. pop_back()

Xóa phần tử cuối cùng.

a.pop_back();

Kết quả: 1 2 3

3. size()

Lấy số lượng phần tử.

cout << a.size();

Kết quả: 3

4. front()

Lấy phần tử đầu tiên.

cout << a.front();

Kết quả: 1

5. back()

Lấy phần tử cuối cùng.

cout << a.back();

Kết quả: 3

6. empty()

Kiểm tra vector có rỗng hay không.

if (a.empty())
{
    cout << "Vector rong";
}

7. clear()

Xóa toàn bộ phần tử trong vector.

a.clear();

8. insert()

Chèn phần tử vào một vị trí.

vector<int> a = {10, 20, 30};

a.insert(a.begin() + 1, 15);

Kết quả: 10 15 20 30

9. erase()

Xóa phần tử tại một vị trí.

a.erase(a.begin() + 1);

Kết quả: 10 20 30

10. begin() và end()

a.begin()
a.end()

begin(): vị trí phần tử đầu tiên.

end(): vị trí ngay sau phần tử cuối cùng.

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> a;

    a.push_back(10);
    a.push_back(20);
    a.push_back(30);

    cout << "So phan tu: " << a.size() << endl;
    cout << "Phan tu dau: " << a.front() << endl;
    cout << "Phan tu cuoi: " << a.back() << endl;

    return 0;
}

Vector trong C++ là gì