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
- Xóa phần tử đầu tiên:
pop_front()
luôn xóa phần tử ở đầu forward_list. - Giảm kích thước:
pop_front()
làm giảm kích thước của forward_list đi 1. - 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 traempty()
trước khi gọipop_front()
. - 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.
- 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). - 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ằngfront()
trước khi xóa. - Độ phức tạp: Độ phức tạp của
pop_front()
là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::vector làO(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_front | Thêm một phần tử mới vào đầu forward_list |
emplace_front | Xây dựng một phần tử mới trực tiếp tại đầu forward_list |
remove | Xó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 |
clear | Xóa tất cả các phần tử khỏi forward_list, làm cho forward_list trở thành rỗng |
resize | Thay đổi kích thước của forward_list |