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

std::list::clear

#include <list>

void clear() noexcept;

Xóa tất cả các phần tử khỏi std::list, làm cho std::list 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. Xóa tất cả phần tử: clear() xóa tất cả các phần tử khỏi std::list, đưa std::list về trạng thái rỗng.
  2. Giảm kích thước về 0: Sau khi gọi clear(), kích thước của std::list (số lượng phần tử) sẽ trở thành 0.
  3. noexcept: clear() được đánh dấu là noexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.
  4. Làm thay đổi iterator: Thao tác clear() sẽ làm thay đổi tất cả iterator đang trỏ vào std::list.
  5. Không làm thay đổi max_size(): clear() không làm thay đổi giá trị trả về bởi max_size().
  6. Độ phức tạp: Độ phức tạp của clear()O(n), với n là số phần tử trong std::list, vì các destructor của các phần tử cần được gọi.

Ví dụ

#include <iostream>
#include <list>

int main() {
std::list<int> mylist = {10, 20, 30, 40, 50};

std::cout << "Size before clear: " << mylist.size() << '\n'; // Output: Size before clear: 5

mylist.clear(); // Xóa tất cả các phần tử

std::cout << "Size after clear: " << mylist.size() << '\n'; // Output: Size after clear: 0

if (mylist.empty()) {
std::cout << "mylist is empty\n"; // Output: mylist is empty
}

return 0;
}

Các hàm liên quan

eraseXóa một hoặc nhiều phần tử khỏi std::list tại một vị trí cụ thể hoặc trong một phạm vi
resizeThay đổi kích thước của std::list
pop_backXóa phần tử cuối cùng của std::list
pop_frontXóa phần tử đầu tiên của std::list
removeXóa tất cả các phần tử có giá trị bằng với một giá trị cho trước khỏi std::list
uniqueXóa các phần tử trùng lặp liên tiếp khỏi std::list
emptyKiểm tra xem std::list có rỗng hay không, tức là không chứa bất kỳ phần tử nào