Chuyển tới nội dung chính

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

  1. clear() xóa tất cả các phần tử khỏi deque, đưa deque về trạng thái rỗng.
  2. Sau khi gọi clear(), kích thước của deque (số lượng phần tử) sẽ trở thành 0.
  3. 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.
  4. 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.
  5. Thao tác clear() sẽ làm thay đổi tất cả iterator đang trỏ vào deque.
  6. Độ 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ạp O(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

eraseXó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
resizeThay đổi kích thước của deque
pop_backXóa phần tử cuối cùng của deque
pop_frontXóa phần tử đầu tiên của deque
emptyKiểm tra xem deque có rỗng hay không