Trong bài viết dưới đây mình sẽ trình bày cho các bạn biết được tất cả những cách sử dụng vector trong c++ như thế nào và hoạt động cụ thể ra sao?
Nội dung của Vector trong c++:
- Khái niệm:
- Là một vector có ngôn ngữ mạnh mẽ nhờ tính linh hoạt và gần gũi đối với ngôn ngữ máy, khả năng lập trình dựa trên mẫu có sẵn, tổng hợp cấu trúc của tất cả dữ liệu cũng như giải thuật và các vector trong c++ một cách tổng quát nhất.
- Chỉ có được một số giá trị nhất định có thể lưu trữ dưới một tên biến duy nhất, có khả năng tự thay đổi kích thước của một phần tử được chèn hoặc tùy xóa, với việc lưu trữ sẽ được cùng chứa tự động xử lý.
- Điểm nổi trội của vector trong c++
- Không cần phải khai báo kích thước của mảng vector trong c++ ví dụ như: int A[100]…, vì vector trong c++ có khả năng tự động nâng kích thước lên.
- Đã thêm 1 phần tử vào vector trong c++ mà đã đầy rồi, thì nó sẽ tự động tăng kích thước của vector trong c++ lên nhằm để đủ chỗ cho giá trị mới này.
- Vector trong c++ này còn giúp cho bạn biết được tất cả số lượng mà các phần tử được bạn đang lưu trong vector trong c++ đó.
- Dùng số phần tử âm vẫn được dùng trong vector c++ ví dụ A[-6], A[-9], vì thế vector trong c++ rất thuận tiện trong việc cài đặt tất các giải thuật.
- Vector trong c++ có các phương thức của Stack, hỗ trợ tất cả các thao tác cơ bản như chèn, xóa, sao chép….
Cú pháp sử dụng của vector trong c++
- Để dùng vector trong c++ thì trước tiên cần thêm 1 thẻ header #include <vector>và phải có using std::vector, ví dụ như: vector <int> A;
- Câu lệnh trên được định nghĩa với 1 vector có kiểu int. Kiểu vector này được đặt trong 2 dấu ngoặc nhọn. Kích thước của vector có thể tự nâng lên mà không cần khai báo số phần tử hoặc nếu muốn khai báo thì bạn có thể khai báo, ví dụ như: vector<int> A(10);
- Câu lệnh trên khai báo với A là 1 vector kiểu int được tạo thành từ 10 phần tử. Mặc dù kích thước của nó bằng 10 nhưng nếu muốn sử dụng hơn vẫn được. Bằng cách khởi tạo lại giá trị mặc định cho vector, ví dụ như: vector<int> A(10,2);
- Câu lệnh trên khai báo với 10 phần tử của vector A được khởi tạo bằng 2. Đồng thời cùng lúc đó ta cũng có thể khởi tạo cho 1 vector sẽ là bản sao của 1 hoặc 1 phần vector khác, ví dụ như:
- vector<int> A(10,2);
- vector<int> B(A);
- vector<int> C(A.begin(), A.begin() + 5 );
- Sử dụng hàm thành viên của vector c++ dùng để truy xuất các phần tử mà nó không có sự tồn tại, và xóa phần tử, ví dụ như: A.pop_back();
- Dùng hàm thành viên để kiểm tra vector c++ có bị rỗng hay không, ví dụ như: if (A.empty() == true).
Cách viết một cú pháp trong vector trong c++:
#include<iostream> // Thư viện iostream phục vụ ghi dữ liệu ra màn hình
#include<vector> // Thư viện vector, sử dụng kiểu vector
usingnamespace std; // Sử dụng namespace std
int main()
{
vector<int> V(3);
// V kiểu vector trong c++ là một số nguyên (sử dụng giống mảng int[3])
V[0] = 5;
// Gán giá trị cho tất các phần tử của biến V
V[1] = 6;
// Sử dụng dấu móc [] hoàn toàn giống với mảng
V[2] = 7;
for (int i=0; i<V.size(); i++)
// Ghi giá trị các phần tử của V ra màn hình
cout << V[i] << endl;
// Nếu sử dụng mảng, bạn phải có biến lưu kích thước
}
Các thuộc tính về cách sử dụng vector trong c++
- Size: thể hiện độ dài hiện có của vector hay là còn có tên gọi khác là kích thước, ví dụ như: vector có 5 phần tử 1, 2, 3, 4, 5, thì có size=5.
- T*array: thể hiện con trỏ tới mảng sẽ phụ thuộc vào kiểu dữ liệu truyền vào.
- Capacity: thể hiện được dung lượng tối đa của mảng, ví dụ như: tạo 1 mảng có 100 phần tử thì có capacity = 10.
Các phương thức cấu thành nên cách sử dụng vector trong c++
- Hàm Expand:
- Tạo một mảng có con trỏ khác tên là “father” lưu tất cả các giá trị hiện có của mảng con trỏ array, rồi ta tiến hành bước tiếp theo là cấp phát cho mảng array có new Capacity phần tử.
- Sau khi tăng dung lượng của mảng array ta tiến hành sao chép các phần tử từ mảng “father” sang mảng array vừa thêm dung lượng.
- Cuối cùng ta cần phải giải phóng bộ nhớ của mảng “father” để tránh lãng phí bộ nhớ, kết thúc nó bằng câu lệnh cập nhật dung lượng hiện có của mảng, ví dụ như:
void expand(int newCapacity)
{
if (newCapacity <= size)
return;
T * old = array; // old trỏ tới mảng cũ
array = new T[newCapacity]; // array trỏ tới mảng mới
for (int i = 0; i < size; i++)
array[i] = old[i]; // sao chép phần tử mảng cũ sang mảng mới
delete[] old; // xóa mảng cũ
capacity = newCapacity; // đặt dung lượng mới
}
- Hàm tạo
Vector(int initCapacity = 100)
{
size = 0;
capacity = initCapacity;
array = new T[capacity];
}
- Hàm hủy:
- là hàm không thể tự động giải phóng bộ nhớ, mảng con trỏ được và bắt buộc phải có câu lệnh giải phóng bộ nhớ.
- Delete [] dùng để giải phóng mảng con trỏ, còn delete để giải phóng bộ nhớ của một con trỏ.
- Hàm nạp chồng toán tử gán một ngôi: là cho hai vector c++ gán lại với nhau.
- Hàm trả về độ dài
int Size()
{
return size;
}
Bài viết trên đã nói hết về cách sử dụng vector trong c++ và tạo một vector đơn giản và dễ hiểu nhất. Mong rằng bài viết này đã giúp cho những ai mới tiếp cận đến lập trình nắm được cách hoạt động của từng hàm, phân biệt các hàm khác nhau được sử dụng trong vector c++.