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

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


Bài viết thảo luận về cách hoạt động, cú pháp và ví dụ của hàm remove() trong C++ STL.

List trong STL là gì?

List là cấu trúc dữ liệu cho phép chèn và xóa ở bất kỳ vị trí nào trong thời gian không đổi. List được triển khai dưới dạng danh sách liên kết đôi. List cho phép cấp phát bộ nhớ không liên tục. List hiệu quả hơn array, vector, deque về chèn, xóa, di chuyển phần tử. Truy cập trực tiếp phần tử trong list chậm hơn, list tương tự forward_list nhưng forward_list là danh sách liên kết đơn chỉ duyệt được một chiều.

remove() là gì?

remove() là hàm built-in trong C++ STL, khai báo trong header <list>. Hàm này xóa tất cả các phần tử có giá trị cụ thể được truyền làm tham số khỏi list container. Hàm gọi destructor nếu kích thước phần tử bị xóa lớn hơn kích thước container.

Cú pháp

list_name.remove(const value_type& value);

Hàm nhận một giá trị để tìm kiếm và xóa khỏi list container.

Giá trị trả về

Hàm không trả về giá trị, chỉ xóa phần tử khỏi container.

Ví dụ

Chèn phần tử vào list rồi xóa các giá trị 1, 2, 3.

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

int main() {
    list<int> myList;
    myList.push_back(1);
    myList.push_back(1);
    myList.push_back(3);
    myList.push_back(2);
    myList.push_back(5);
    cout << "List before removing elements: ";
    for(auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    myList.remove(1);
    myList.remove(2);
    myList.remove(3);
    cout << "\nList after removing elements: ";
    for(auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    return 0;
}

Kết quả

List before removing elements: 1 1 3 2 5
List after removing elements: 5