Vector Trong C++ – TopDev

Bài viết được sự cho phép của tác giả Khiêm Lê

Vector là gì và tại sao nên dùng vector ?

Bạn đã khi nào phát chán việc quản trị mảng động qua con trỏ trong C + + chưa ? Hay việc mỗi khi bạn muốn resize kích cỡ mảng động trong C + +, bạn phải tạo mảng mới, copy những thành phần qua mảng mới, rồi lại xóa mảng cũ đi. Quá phiền phức, tốn quá nhiều thời hạn, cho nên vì thế mà C + + còn cung ứng cho tất cả chúng ta một kiểu nữa đó chính là kiểu vector. Vậy thì vector là gì ? Bảng băm trong C + +

C Token là gì? Cú pháp trong lập trình C/C++

Bạn đang đọc: Vector Trong C++ – TopDev

Vector là một chuỗi những thành phần có cùng kiểu tài liệu, cũng giống như mảng thông thường trong C + +. Vậy thì tại sao phải dùng nó ? Đầu tiên, vector hoàn toàn có thể tự tăng size của nó mỗi khi ta triển khai thêm một thành phần vào vector. Thứ 2, vector hoàn toàn có thể tự giải phóng bộ nhớ khi ta thực thi xong đoạn code và thoát ra khỏi scope chứa vector đó, việc này nhầm tránh rò rỉ bộ nhớ khi ta quên delete [ ] như con trỏ. Thứ ba là vector phân phối những hàm thiết yếu để tất cả chúng ta cho thể thao tác với mảng một cách thuận tiện.

Cú pháp khai báo và những hàm cơ bản

Với quá nhiều quyền lợi của vector thì việc gì tất cả chúng ta phải xử dụng mảng động để quản trị cho mất công đúng không nào ! Hãy cùng tìm hiểu và khám phá về cách sử dụng vector ngay sau đây.

Khai báo vector

Để sử dụng vector bạn cần thêm thư viện vector trước. Cú pháp khai báo một vector như sau :

#include

/ / … vector<[kiểu_dữ_liệu]> tên_vector; vectorkiểu_dữ_liệutên_vectorVậy là tất cả chúng ta đã có một vector với mỗi thành phần có kiểu tài liệu là [ kiểu_dữ_liệu ]. Bạn hoàn toàn có thể gán giá trị trực tiếp cho vector ngay khi khởi tạo như ví dụ sau : vector arr = {1, 2, 3}; / / tạo một vector có ba thành phần là 1, 2, 3 vectorarrBạn cũng hoàn toàn có thể khởi tạo một vector và gán giá trị một vector khác cho nó như sau : vector A = {1, 2, 3}; vector B = A; / / B cũng sẽ mang giá trị của A là { 1, 2, 3 }

Truy xuất thành phần của vector

vectorvectorTruy xuất thành phần trong vector hoàn toàn có thể được triển khai qua hai cách là qua phương pháp at ( ) hoặc qua dấu [ ] như mảng thường thì. vector arr = {1, 2, 3}; cout < < arr.at(2); / / được 3 vì vị trí số 2 chính là 3 / / Hoặc cout < < arr[2]; / / ta cũng được tương tự như như trên / / gán thành phần arr.at(0) = 0; / / gán lại thành phần 0 bằng 0 / / hoặc arr[1] = 9; / / gán lại thành phần 1 bằng 7 vectorarrcoutarrcoutarrarrarrCả hai cách đều có tác dụng như nhau vậy thì sự khác nhau giữa chúng là gì ? Chính là năng lực kiểm tra khoanh vùng phạm vi. Đối với phương pháp at ( ), bạn hoàn toàn có thể dùng try catch để bắt lỗi như sau : vector arr = {1, 2, 3}; try { cout < < arr.at(-1); } catch (const std::out_of_rangevà oor) { std::cerr < < " Out of Range error : " < < oor.what() < < ' \ n '; }

Lấy thành phần đầu và cuối của vector

vectorarrcoutarrstdout_of_rangeoorstdcerroorĐể lấy thành phần đầu và cuối ta sử phương pháp hàm font ( ) và back ( ). vector arr = {1, 2, 3}; cout < < arr.front(); / / được thành phần đầu là 1 cout < < arr.back(); / / được thành phần cuối là 3

Thêm thành phần vào cuối vector

vectorarrcoutarrcoutarrĐể thêm thành phần vào cuối vector ta sử dụng phương pháp push_back ( ). vector arr = {1, 2, 3}; arr.push_back(4); / / Mảng sau khi thêm là { 1, 2, 3, 4 } vectorarrarrLưu ý sau khi thêm vào thì size của vector sẽ tăng lên 1 và nếu size vượt quá capacity thì capacity cũng sẽ tự động hóa được tăng lên. ( size và capacity sẽ được trình diễn bên dưới ).

Loại bỏ thành phần cuối vector

Để vô hiệu đi thành phần ở đầu cuối của vector, ta sử dụng phương pháp pop_back ( ). vector arr = {1, 2, 3}; arr.pop_back(4)

;

/ / Mảng sau khi vô hiệu thành phần cuối là { 1, 2, 3 } vectorarrarrLưu ý sau khi vô hiệu thành phần cuối thì size sẽ tự giảm xuống 1 nhưng capacity không biến hóa ( size và capacity sẽ được trình diễn bên dưới ).

Số thành phần của vector

Để biết được số thành phần của vector ta sử dụng phương pháp size ( ). vector arr = {1, 2, 3}; cout < < arr.size(); / / ta sẽ được 3 vì vector có 3 thành phần

Kích thước của vector

vectorarrcoutarrĐể biết được kích cỡ của vector ta dùng phương pháp capacity ( ). vector arr = {1, 2, 3}; cout < < arr.capacity(); / / ta sẽ được 3 vì vector có size là 3 thành phần vectorarrcoutarrCó nhiều bạn bị nhầm giữa số lượng thành phần ( size ) và size vector ( capacity ). Kích thước là số lượng thành phần nhiều nhất mà vector đó từng chứa còn số lượng thành phần là số lượng thành phần mà vector đó hiện tại đang chứa. Các bạn hoàn toàn có thể xem ví dụ sau để hiểu thêm : vector arr = {1, 2, 3}; cout < < arr.size(); / / được 3 vì vector đang chứa 3 thành phần cout < < arr.capacity(); / / được 3 vì vector chứa nhiều nhất là 3 thành phần arr.pop_back(); / / lấy đi thành phần cuối cout < < arr.size(); / / được 2 vì vector đang chứa 2 thành phần cout < < arr.capacity(); / / vẫn được 3 vì vector này từng chứa nhiều nhất 3 thành phần

Thay đổi số thành phần của vector

vectorarrcoutarrcoutarrarrcoutarrcoutarrBạn hoàn toàn có thể dùng phương pháp resize ( ) để biến hóa số thành phần của vector. vector arr = {1, 2, 3}; cout < < arr.size(); / / được 3 vì vector đang giữ 3 thành phần arr.resize(1); cout < < arr.size(); / / được 1 vì vector đã được resize về 1 vectorarrcoutarrarrcoutarrLưu ý là sau khi resize thì vector sẽ chỉ lấy đủ số thành phần đã set còn tổng thể những thành phần sau sẽ bỏ đi. vector arr = {1, 2, 3}; cout < < arr.size(); / / được 3 vì vector đang giữ 3 thành phần arr.resize(1); cout < < arr.size(); / / được 1 vì vector đã được resize về 1 / / Xét ví dụ sau cout < < arr.at(2); cout < < arr[2]; / / cả hai đều lỗi vì truy vấn thành phần lớn hơn size của vector

Xóa hết thành phần của vector

vectorarrcoutarrarrcoutarrcoutarrcoutarrĐể xóa toàn bộ những thành phần của vector ta dùng phương pháp clear ( ). Sau khi xóa thì size cũng sẽ trở lại 0. vector arr = {1, 2, 3}; cout < < arr.size(); / / được 3 arr.clear(); cout < < arr.size(); / / được 0 vì đã xóa hết thành phần của vector

Lời kết

vectorarrcoutarrarrcoutarr

Trên đây là bài viết vector trong C++ của mình, nếu có sai sót dì các bạn có thể comment bên dưới video để giúp mình sửa sai nha. Cảm ơn các bạn đã theo dõi bài viết!

Bài viết gốc được đăng tải tại khiemle.dev

Có thể bạn quan tâm:

  • Tổng hợp vector trong C++
  • Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ)
  • Namespace trong C#

Xem thêm Việc làm Developer hấp dẫn trên TopDev