Vector trống trong C++ (clear, empty,shrink_to_fit) | Laptrinhcanban.com

Vector trống trong C++ (clear, empty,shrink_to_fit)

Cùng tìm hiểu về vector trống trong C++. Bạn sẽ học được cách sử dụng hàm empty() để kiểm tra một vector có phải là vector trống, hàm clear() để làm trống một vector, cũng như hàm shrink_to_fit() để giải phóng bộ nhớ sau khi làm trống vector trong C++ sau bài học này.

Kiểm tra vector trống trong C++ bằng hàm empty

Hàm empty là một hàm thành viên trong class std:vector, có tác dụng kiểm tra một vector có phải là vector trống hay không trong C++.

Cú pháp của hàm empty trong C++ như sau:

vt.empty();

Trong đó vt là vector cần kiểm tra.

Hàm empty sẽ trả về true nếu vector đã cho là vector trống, và trả về false, nếu vector đã cho có chứa phần tử.

Ngoài cách dùng hàm empty, chúng ta cũng có thể sử dụng hàm size để lấy số phần tử của vector và xem nó có bằng 0 hay không để kiểm tra vector trống, tuy nhiên hàm empty được cho là có tốc độ xác định nhanh hơn.

Ví dụ cụ thể, chúng ta kiểm tra vector trống trong C++ bằng hàm empty như sau:

#include <iostream>
#include <vector>
using namespace std;

int main ()
{
vector<int> vt;
if( vt.empty() )
std::cout << "empty.\n";
else
std::cout << "not empty.\n";

vector<int> dq2{1, 2, 3};
if( dq2.empty() )
std::cout << "empty.\n";
else
std::cout << "not empty.\n";
}

Kết quả:

empty.
not empty.

Làm trống 1 vector trong C++ bằng hàm clear

Hàm clear là một hàm thành viên trong class std:vector, có tác dụng làm trống một vector trong C++.

Cú pháp của hàm clear trong C++ như sau:

vt.clear();

Trong đó vt là vector cần làm trống.

Lưu ý hàm vector clear sẽ làm trống vector chỉ định bằng việc xóa đi tất cả phần tử của nó. Tuy nhiên thì hàm vector clear sẽ không giải phóng bộ nhớ sử dụng cho việc lưu trữ dữ liệu đã dùng.

Trong trường hợp muốn xóa phần tử và giải phóng bộ nhớ, hãy dùng hàm shrink_to_fit() để thay thế.

Ví dụ cụ thể, chúng ta làm trống 1 vector trong C++ bằng hàm clear như sau:

#include <iostream>
#include <vector>
using namespace std;

//Tạo hàm xuất vector
void dump(vector<int>& v)
{
for (auto x: v) {
cout << " "<< x ;
}
cout << endl;
}

int main ()
{
vector<int> vt{3, 1, 4};
dump(vt);

vt.clear();
dump(vt);
}

Kết quả:

3 1 4

Giải phóng bộ nhớ trong C++ bằng hàm shrink_to_fit

Hàm shrink_to_fit là một hàm thành viên trong class std:vector, có tác dụng tinh chỉnh và làm giảm bộ nhớ sử dụng để lưu một vector trong C++.

Thông thường một vùng chứa vector có thể được cấp phát nhiều bộ nhớ hơn mức cần thiết để chứa các phần tử hiện tại của nó, nhằm tạo không gian trong mảng động giúp việc xử lý thêm chèn vector nhanh hơn.

Và hàm shrink_to_fit được tạo ra nhằm giúp chúng ta khi muốn reset lại vùng bộ nhớ và xóa đi các vùng cấp phát thừa. Lưu ý là hàm chỉ xóa các bộ nhớ cấp phát thừa, chứ không làm giảm kích thước tối thiểu của vùng chứa vector.

Hàm shrink_to_fit hay được sử dụng sau hàm clear(), sau khi bạn đã xóa tất cả các phần tử và cần phải giải phóng cả bộ nhớ đã dùng để chứa vector đó.

Cú pháp của hàm shrink_to_fit trong C++ như sau:

vt.shrink_to_fit();

Trong đó vt là vector cần tinh chỉnh và làm giảm bộ nhớ.

Ví dụ cụ thể, chúng ta giải phóng bộ nhớ sau khi đã làm trống 1 vector như sau:

#include <iostream>
#include <vector>
using namespace std;

int main ()
{
std::vector<int> vt{3, 1, 4};
vt.clear();
vt.shrink_to_fit();
}

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về vector trống trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.