std::deque::pop_front
#include <deque>
void pop_front();
Xóa phần tử đầu tiên của deque.
Tham số
Không có tham số
Giá trị trả về
Không có giá trị trả về
Đặc điểm
pop_front()
luôn xóa phần tử ở đầu deque.pop_front()
làm giảm kích thước của deque đi 1.- Gọi
pop_front()
trên một deque 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()
. - Khi xóa phần tử đầu tiên, các phần tử còn lại trong deque 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.
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).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::deque 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 <deque>
int main() {
std::deque<int> myDeque = {10, 20, 30};
myDeque.pop_front(); // Xóa phần tử đầu tiên (10)
std::cout << "myDeque:";
for (int x : myDeque) {
std::cout << ' ' << x;
}
std::cout << '\n'; // Output: myDeque: 20 30
myDeque.pop_front(); // Xóa phần tử đầu tiên (20)
std::cout << "myDeque:";
for (int x : myDeque) {
std::cout << ' ' << x;
}
std::cout << '\n'; // Output: myDeque: 30
return 0;
}
Kiểm tra deque có rỗng hay không
#include <iostream>
#include <deque>
int main() {
std::deque<int> myDeque;
if (!myDeque.empty()) {
myDeque.pop_front();
} else {
std::cout << "Cannot call pop_front() on an empty deque!\n";
}
return 0;
}
Các hàm liên quan
pop_back | Xóa phần tử cuối cùng của deque |
push_front | Thêm một phần tử mới vào đầu deque |
erase | Xó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 |