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

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

  1. pop_front() luôn xóa phần tử ở đầu deque.
  2. pop_front() làm giảm kích thước của deque đi 1.
  3. 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 tra empty() trước khi gọi pop_front().
  4. 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.
  5. 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. 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::deque 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 <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_backXóa phần tử cuối cùng của deque
push_frontThêm một phần tử mới vào đầu deque
eraseXó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