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

Hàm list::erase() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về hoạt động, cú pháp và ví dụ của hàm list::erase() trong C++.

list::erase() là gì?

list::erase() là hàm tích hợp trong C++ STL khai báo trong header. Hàm này xóa phần tử khỏi container list. Có thể xóa một phần tử đơn lẻ hoặc một phạm vi phần tử. Kích thước list giảm đi số phần tử bị xóa.

Cú pháp

list_container.erase(vị_trí);
list_container.erase(vị_trí_bắt_đầu, vị_trí_kết_thúc);

Hàm nhận một hoặc hai tham số.

Tham số

  • vị_trí – vị trí đơn lẻ muốn xóa.
  • vị_trí_bắt_đầu, vị_trí_kết_thúc – phạm vi muốn xóa.

Giá trị trả về

Trả về iterator trỏ đến phần tử tiếp theo sau phần tử cuối cùng bị xóa.

Ví dụ 1

Xóa phần tử đầu tiên của list bằng iterator từ begin().

#include <bits/stdc++.h>
using namespace std;

int main() {
    list<int> myList;
    myList.push_back(2);
    myList.push_back(4);
    myList.push_back(6);
    myList.push_back(8);
    myList.push_back(10);
    cout << "List before deleting elements: ";
    for (auto i = myList.begin(); i != myList.end(); i++) cout << *i << " ";
    list<int>::iterator it = myList.begin();
    myList.erase(it);
    cout << "\nList after deleting elements: ";
    for (auto i = myList.begin(); i != myList.end(); i++) cout << *i << " ";
    return 0;
}

Đầu ra

List before deleting elements: 2 4 6 8 10
List after deleting elements: 4 6 8 10

Ví dụ 2

Xóa phạm vi phần tử từ vị trí 0 đến 3 (4 phần tử đầu).

#include <bits/stdc++.h>
using namespace std;

int main() {
    list<int> myList;
    myList.push_back(2);
    myList.push_back(4);
    myList.push_back(6);
    myList.push_back(8);
    myList.push_back(10);
    cout << "List before deleting elements: ";
    for (auto i = myList.begin(); i != myList.end(); i++) cout << *i << " ";
    list<int>::iterator it1 = myList.begin();
    list<int>::iterator it2 = myList.begin();
    advance(it2, 4);
    myList.erase(it1, it2);
    cout << "\nList after deleting elements: ";
    for (auto i = myList.begin(); i != myList.end(); i++) cout << *i << " ";
    return 0;
}

Đầu ra

List before deleting elements: 2 4 6 8 10
List after deleting elements: 10