Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Xóa phần tử trong STL list của C++

Trong C++, std::list là container dạng danh sách liên kết đôi. Bài viết giới thiệu hai hàm cơ bản để xóa phần tử ở đầu và cuối danh sách.

Hai hàm chính

  • pop_front(): Xóa phần tử đầu tiên của list.
  • pop_back(): Xóa phần tử cuối cùng của list.

Cả hai hàm không trả về giá trị và không nhận tham số. Chúng giảm kích thước list đi 1.

Ví dụ code C++

#include <iostream>
#include <list>
using namespace std;

int main() {
    list<int> list1 = {10, 15, 20, 25, 30, 35};
    
    cout << "Danh sách ban đầu: ";
    for (auto it = list1.begin(); it != list1.end(); ++it)
        cout << *it << " ";
    cout << endl;
    
    // Xóa phần tử đầu
    list1.pop_front();
    cout << "Sau pop_front(): ";
    for (auto it = list1.begin(); it != list1.end(); ++it)
        cout << *it << " ";
    cout << endl;
    
    // Xóa phần tử cuối
    list1.pop_back();
    cout << "Sau pop_back(): ";
    for (auto it = list1.begin(); it != list1.end(); ++it)
        cout << *it << " ";
    cout << endl;
    
    return 0;
}

Đầu ra

Danh sách ban đầu: 10 15 20 25 30 35
Sau pop_front(): 15 20 25 30 35
Sau pop_back(): 15 20 25 30

Lưu ý

  • Nếu list rỗng, gọi pop_front() hoặc pop_back() sẽ gây hành vi không xác định (undefined behavior). Nên kiểm tra empty() trước.
  • Để xóa phần tử ở giữa, sử dụng erase(iterator).
  • list không hỗ trợ truy cập ngẫu nhiên (random access), nên không dùng operator[].