list学习之删除操作clear,erase, pop_front, pop_back

本篇学习list的删除操作

clear:清除内容

erase:擦除元素

pop_front:移除首元素

pop_back:移除末元素

代码实现

#include 
#include 
#include 
#include 

using namespace std;

void deleteElement()
{
    //1.clear擦除内容
    list list1 = {22, 25, 27, 30, 33};
    cout << "list1 的值: ";
    for(auto &val: list1)
        cout << val << "\t";
    cout << endl;
    cout << "list1.size = " << list1.size() << endl;
    list1.clear();
    cout << "list1.size = " << list1.size() << endl;

    //2.erase:擦除元素
    list list2 = {36, 39, 41,  42};
    auto it1 = list2.erase(list2.begin());//擦除首元素,即删除36,返回25
    cout << "it1 = " << *it1 << endl;
    cout << "list2 的值: ";
    for(auto &val: list2)
        cout << val << "\t";
    cout << endl;
    //擦除范围
    list list3 = {43, 44, 45, 46, 47, 48, 49};
    auto begin = std::next(list3.begin());
    auto end = std::next(list3.begin(), 4);
    --end;
    cout << "begin = " << *begin << endl;
    cout << "end   = " << *end << endl;
    cout << "list3 的值: ";
    for(auto &val: list3)
        cout << val << "\t";
    cout << endl;

    //3.pop_front:移除首元素
    list3.pop_front();//无返回值
    cout << "list3 的值: ";
    for(auto &val: list3)
        cout << val << "\t";
    cout << endl;
    //4.pop_back:移除末元素
    list list4 = {50, 51, 52, 53};
    cout << "list4 的值: ";
    for(auto &val: list4)
        cout << val << "\t";
    cout << endl;
    list4.pop_back();
    cout << "list4 的值: ";
    for(auto &val: list4)
        cout << val << "\t";
    cout << endl;
    cout << endl;
}

int main()
{
    deleteElement();
    cout << endl;

    cout << " Hello World!" << endl;
    return 0;
}

运行结果:

list学习之删除操作clear,erase, pop_front, pop_back_第1张图片

参考:

http://www.cplusplus.com/reference/list/list/
https://zh.cppreference.com/w/cpp/container/list

 

 

你可能感兴趣的:(STL,list)