std::deque::clear
#include <deque>
void clear() noexcept;
Xóa tất cả các phần tử khỏi deque, làm cho deque trở thành rỗng.
Tham số
Không có tham số
Giá trị trả về
Không có giá trị trả về
Đặc điểm
clear()
xóa tất cả các phần tử khỏi deque, đưa deque về trạng thái rỗng.- Sau khi gọi
clear()
, kích thước của deque (số lượng phần tử) sẽ trở thành 0. clear()
được đánh dấu lànoexcept
(kể từ C++11), nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.clear()
không làm thay đổi dung lượng (capacity) của deque (nếu có, std::deque không có khái niệm capacity rõ ràng như std::vector). Bộ nhớ đã cấp phát cho deque có thể vẫn được giữ lại để sử dụng cho các phần tử được thêm vào sau đó, hoặc có thể được giải phóng tùy thuộc vào trình triển khai.- Thao tác
clear()
sẽ làm thay đổi tất cả iterator đang trỏ vào deque. - Độ phức tạp: Độ phức tạp của
clear()
thường làO(n)
, với n là số phần tử trong deque, vì các destructor của các phần tử cần được gọi. Tuy nhiên, một số triển khai có thể tối ưu hóa để đạt được độ phức tạpO(1)
.
Ví dụ
#include <iostream>
#include <deque>
int main() {
std::deque<int> myDeque = {10, 20, 30, 40, 50};
std::cout << "myDeque size before clear: " << myDeque.size() << '\n'; // Output: myDeque size before clear: 5
myDeque.clear(); // Xóa tất cả các phần tử
std::cout << "myDeque size after clear: " << myDeque.size() << '\n'; // Output: myDeque size after clear: 0
if (myDeque.empty()) {
std::cout << "myDeque is empty\n"; // Output: myDeque is empty
}
return 0;
}
Các hàm liên quan
erase | Xóa một hoặc nhiều phần tử khỏi deque tại một vị trí cụ thể hoặc trong một phạm vi |
resize | Thay đổi kích thước của deque |
pop_back | Xóa phần tử cuối cùng của deque |
pop_front | Xóa phần tử đầu tiên của deque |
empty | Kiểm tra xem deque có rỗng hay không |