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

std::forward_list::pop_front

#include <forward_list>

void pop_front();

Xóa phần tử đầu tiên của forward_list.

Tham số

Không có tham số

Giá trị trả về

Không có giá trị trả về

Đặc điểm

  1. Xóa phần tử đầu tiên: pop_front() luôn xóa phần tử ở đầu forward_list.
  2. Giảm kích thước: pop_front() làm giảm kích thước của forward_list đi 1.
  3. Hành vi không xác định khi danh sách rỗng: Gọi pop_front() trên một forward_list rỗng sẽ dẫn đến hành vi không xác định (undefined behavior). Bạn nên kiểm tra empty() trước khi gọi pop_front().
  4. Không làm thay đổi vị trí tương đối của các phần tử còn lại: Khi xóa phần tử đầu tiên, các phần tử còn lại trong forward_list sẽ được dời lên trước, nhưng thứ tự tương đối giữa chúng vẫn được giữ nguyên.
  5. Không ném ngoại lệ: pop_front() không ném ra bất kỳ ngoại lệ nào (trừ khi destructor của phần tử bị xóa ném ngoại lệ, nhưng trường hợp này rất hiếm).
  6. Không trả về giá trị phần tử bị xóa: pop_front() không trả về giá trị của phần tử bị xóa. Nếu bạn cần giá trị đó, hãy truy cập bằng front() trước khi xóa.
  7. Độ phức tạp: Độ phức tạp của pop_front()O(1) - thời gian hằng số. Đây là một trong những ưu điểm chính của std::forward_list so với std::vector (độ phức tạp xóa phần tử đầu của std::vectorO(n)).

Ví dụ

#include <iostream>
#include <forward_list>

int main() {
std::forward_list<int> mylist;

if (!mylist.empty()) {
mylist.pop_front();
} else {
std::cout << "Cannot call pop_front() on an empty forward_list!\n"; // Output: Cannot call pop_front() on an empty forward_list!
}

return 0;
}

Các hàm liên quan

push_frontThêm một phần tử mới vào đầu forward_list
emplace_frontXây dựng một phần tử mới trực tiếp tại đầu 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
clearXóa tất cả các phần tử khỏi forward_list, làm cho forward_list trở thành rỗng
resizeThay đổi kích thước của forward_list