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

std::forward_list::clear

#include <forward_list>

void clear() noexcept;

Xóa tất cả các phần tử khỏi forward_list, làm cho forward_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 forward_list, đưa forward_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 forward_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 forward_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 forward_list, vì các destructor của các phần tử cần được gọi.

Ví dụ

#include <iostream>
#include <forward_list>

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

std::cout << "Size before clear: " << std::distance(mylist.begin(), mylist.end()) << '\n'; // Output: Size before clear: 5

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

std::cout << "Size after clear: " << std::distance(mylist.begin(), mylist.end()) << '\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

erase_afterXóa một hoặc nhiều phần tử khỏi forward_list tại vị trí sau một iterator cho trước
resizeThay đổi kích thước của forward_list
pop_frontXóa phần tử đầu tiên của forward_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 forward_list
uniqueXóa các phần tử trùng lặp liên tiếp khỏi forward_list
emptyKiểm tra xem forward_list có rỗng hay không