Tất tần tật về vector trong C++, cách khai báo, cách sử dụng vector c++ để giải quyết các bài toán trong lập trình, các hàm có sẵn của vector như sort, insert, pop, push. Cùng tìm hiểu trong bài viết này nhé.
Vector C++ là gì?
Vector C++ là một lớp, một cấu trúc dữ liệu có trong thư viện của C++ Standard Template Library dùng để lưu các đối tượng khác giống với mảng (Array), vector được sinh ra nhằm khắc phục các mặt hạn chế của mảng. Nếu như mảng chỉ có một kích thước cố định khi khai báo thì vector hoàn toàn có thể thay đổi trong khi chương trình đang hoạt động. Tức là một đối tượng vector có thể linh động về kích thước tương tự như con trỏ.
Kích thước không cố định chính là điểm nổi bật nhất của vector. Tuy nhiên không dừng lại ở đó, đối tượng này còn được trang bị thêm khá nhiều phương thức xử lý thông dụng như sort, insert, delete, leght . . . Chính nhờ tính linh hoạt của nó, đôi khi sẽ hữu ích hơn trong việc giải quyết các bài toán lập trình.
Một số ưu điểm nổi trội hoàn toàn so với cấu trúc mảng có thể kể đến:
- Không cần phải khai báo kích thước, vector tự động tăng kích thước ô nhớ giúp tiết kiệm tài nguyên
- Nếu vector đã đầy nó cũng tự động tăng kích thước cho phù hợp.
- Vetor còn có thể tăng kích thước về cả hai chiều của danh sách.
- Rất thuật tiện cho việc thiết kế và cài đặt các giải thuật.
Cách sử dụng vetor C++
Để sử dụng vector trong C++, chúng ta cần phải khai báo thư viện sau đó khai báo cấu trúc vector cần dùng.
Khai báo thư viện: #include<vector>
Cú pháp khai báo một vector: vector <kiểu dữ liệu> tên biến
Ví dụ khai báo vector:
#include<vector> // Khai báo thư viện
vector <int> a; //Khai báo một vector kiểu dữ liệu int
hoặc chúng ta có thể gắn ngay giá trị cho vector khi khai báo.
vector<int> a(10);
vector<int> b(10,2);
khai báo vector 2 chiều, nhiều chiều.
vector<vector <int> > a;
=>>XEM THÊM: Giá thầu CPC và CPM trong Google Adsense là gì
Hàm vector thường sử dụng
Vector bản chất là một class trong C++, vì vậy để sử dụng các hàm vector ta có cú pháp chung sau:
vector_name.function_name(các tham số…);
vector_name: Là tên biến vector.
function_name: Tên hàm
1. Hàm lấy phần tử front(), back()
2 hàm front(), back() lần lượt là 2 hàm lấy phần tử đầu và cuối vector.
Ví dụ:
vector<int> myvector{ 1, 2, 3, 4, 5 };
int t = myvector.front(); //lúc này t sẽ là 1
int t2 = myvector.back(); //lúc này t sẽ là 5
2. Hàm push_back, pop_back
Hàm push_back là hàm chèn 1 phần tử vào cuối vector.
Ví dụ:
vector<int> myvector{ 1, 2, 3, 4, 5 };
myvector.push_back(6); // lúc này vector sẽ là: 1, 2, 3, 4, 5, 6
Hàm pop_back xóa phần tử cuối cùng của vector.
Ví dụ:
vector<int> myvector{ 1, 2, 3, 4, 5 };
myvector.pop_back (); // lúc này vector sẽ là: 1, 2, 3, 4
3. Các hàm tương tác với phần tử
Hàm lấy ra phần tử ở vị trí bất kỳ: vector_name.at(<vị trí>);
Hàm insert giúp chèn một phần tử vào vị trí bất kì trong vector: vector_name.insert(<vị trí>, <giá trị>);
Hàm swap giúp đổi chỗ hai phần tử trong vector: vector_name.swap(<vị trí a> , <vị trí b>);
Hàm clear xóa bỏ toàn bộ các phần tử có trong vector: vector_name.clear();
=>>XEM THÊM: Sắp xếp mảng 1 chiều theo thứ tự giảm dần trong lập trình C/C++
4. Nhóm các hàm chức năng
Hàm size trả về chiều dài của vector: vector_name.size();
Hàm resize giúp cho vector tự động thay đổi kích thước nếu kích thước vượt quá ban đầu. Thu nhỏ nếu kích thước cần chuyển nhỏ hơn.
Hàm capacity trả về dung lượng tổng các ô nhớ của vector: vector_name.capacity();
Hàm shrink_to_fit() có tác dụng tự giảm dung lượng, loại bỏ các ô nhớ dư thừa, co vector lại cho vừa khít với bộ nhớ cần dùng. giúp tiết kiệm dung lượng: shrink_to_fit();
empty() là hàm trả về kiểu boolean, kiểm tra xem vector có trống hay không: vector_name.empty();
Hàm sort giúp sắp xếp vector một cách nhanh nhất theo chiều tăng dần. Cách dùng: vector_name.sort();
5. Các hàm tùy chỉnh vị trí duyệt Iterators
Hàm begin trỏ iterators về vị trí bắt đầu của vector: vector_name.begin();
(giống với việc đặt i = 0 để duyệt từ đầu mảng, bạn đặt i = vector_name.begin() )
Hàm end trỏ về vị trí cuối cùng của vector: vector_name.end();
Hàm rbegin trỏ về vị trí đảo ngược của begin. (trỏ về vị trí cuối). Tương tự ta cũng có hàm rend đảo ngược vị trí kế thúc.
Cảm ơn bạn đã đọc bài viết! Chúc bạn học tốt!
XEM THÊM Hàm memset trong C/C++ – Sao chép ký tự x tới n ký tự trong một chuỗi Cách kiểm tra Số hoàn hảo trong C++ Tìm UCLN, BCNN của 3 số, 4 số…nhiều số và của một mảng Viết Hàm swap trong lập trình C/C++ – Hàm hoán vị giá trị 2 biến