用户登录
用户注册

分享至

STL之list

  • 作者: ZHANG风云江湖
  • 来源: 51数据库
  • 2021-07-10

list即双向链表。

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

int main()
{
    //构造
    list<int> li;

    //插入元素
    //头插
    li.emplace_front(2);
    //尾插
    li.emplace_back(8);
    //指定位置插入
    li.insert(++li.begin(), 6);

    //遍历
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //输出:268

    //排序,不能使用头文件algorithm中的sort算法,使用list模板自定义的sort方法
    li.sort(greater<int>()); //从大到小排序
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //输出:862

    li.emplace_back(2);
    li.emplace_back(6);
    li.emplace_back(8);

    //删除元素
    //删除指定位置元素
    li.erase(++li.begin()); //删除第二个元素'6'
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //输出:82268

    //删除指定元素
    li.remove(8); //删除元素'8'
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //输出:226

    //删除连续的重复元素,只保留其中一个
    li.unique(); //删除连续的重复元素'2',只保留其中一个
    for (list<int>::iterator it = li.begin(); it != li.end(); it++)
        cout << *it;
    cout << endl;
    //输出:26

    return 0;
}
软件
前端设计
程序设计
Java相关