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

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

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

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

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

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

dq.empty();

Trong đó dq là deque cần kiểm tra.

Hàm empty sẽ trả về true nếu deque đã cho là deque trống, và trả về false, nếu deque đã 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 deque và xem nó có bằng 0 hay không để kiểm tra deque 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 deque trống trong C++ bằng hàm empty như sau:

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

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

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

Kết quả:

empty.
not empty.

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

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

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

dq.clear();

Trong đó dq là deque cần làm trống.

Lưu ý hàm deque clear sẽ làm trống deque chỉ định bằng việc xóa đi tất cả phần tử của nó. Tuy nhiên thì hàm deque 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 deque trong C++ bằng hàm clear như sau:

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

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

int main ()
{
deque<int> dq{3, 1, 4};
dump(dq);

dq.clear();
dump(dq);
}

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:deque, có tác dụng tinh chỉnh và làm giảm bộ nhớ sử dụng để lưu một deque trong C++.

Thông thường một vùng chứa deque 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 deque 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 deque.

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 deque đó.

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

dq.shrink_to_fit();

Trong đó dq là deque 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 deque như sau:

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

int main ()
{
deque<int> dq{3, 1, 4};
dq.clear();
dq.shrink_to_fit();
}

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về deque 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.