stl list常用函数

    //构造函数
    //list()
    list<int> l1;

    //explicit list(size_type _Count)
    list<int> l2(10);

    //list(size_type _Count, const _Ty& _Val)
    list<int> l3(3, 11);

    //list(const _Myt& _Right)
    list<int> l4(l3);

    //list(_Iter _First, _Iter _Last)
    int arr[] = { 1, 2, 44, 22, 12 };
    list<int> l5(arr, arr + 5);

    //添加元素
    l5.push_back(3);        //1 2 44 22 12 3

    //使用迭代器遍历
    list<int>::iterator iter;
    for (iter = l5.begin(); iter != l5.end(); ++iter)
    {
        cout << *iter << endl;        //1 2 44 22 12 3
    }
    cout << endl;

    //反向遍历
    list<int>::reverse_iterator riter;
    for (riter = l5.rbegin(); riter != l5.rend(); ++riter)
    {
        cout << *riter << endl;        //3 12 22 44 2 1
    }
    cout << endl;

    //插入元素
    l5.push_front(21);        //21 1 2 44 22 12 3
    l5.insert(++l5.begin(), 11);        //21 11 1 2 44 22 12 3

    for (iter = l5.begin(); iter != l5.end(); ++iter)
    {
        cout << *iter << endl;        //21 11 1 2 44 22 12 3
    }
    cout << endl;

    //删除元素
    l5.pop_front();                    //11 1 2 44 22 12 3
    l5.pop_back();                    //11 1 2 44 22 12
    l5.erase(++l5.begin());            //11 2 44 22 12
    l5.erase(l5.begin(), ++l5.begin());        //2 44 22 12

    for (iter = l5.begin(); iter != l5.end(); ++iter)
    {
        cout << *iter << endl;        //2 44 22 12
    }
    cout << endl;

    //删除所有元素
    l5.clear();

    //删除所有值为11的元素
    l3.remove(11);
    for (iter = l3.begin(); iter != l3.end(); ++iter)
    {
        cout << *iter << endl;        //
    }
    cout << endl;

    //交换两个容器
    l3.swap(l4);

    //list的归并
    list<int> l6;
    l6.push_back(2);
    l6.push_back(13);
    l6.push_back(5);

    //将l6归并到l3的开始位置之前,l6被清空
    l3.splice(l3.begin(), l6);
    for (iter = l3.begin(); iter != l3.end(); ++iter)
    {
        cout << *iter << endl;        //2 13 5 11 11 11
    }
    cout << endl;

    l6.push_back(1);

    //将l6的开始元素归并到l3的开始位置之前,l6的开始元素被删除
    l3.splice(l3.begin(), l6, l6.begin());
    for (iter = l3.begin(); iter != l3.end(); ++iter)
    {
        cout << *iter << endl;        //1 2 13 5 11 11 11
    }
    cout << endl;

    //将l6归并到l3,链表预先排好序
    l6.push_back(22);
    //排序元素
    l3.sort();
    l3.merge(l6);
    for (iter = l3.begin(); iter != l3.end(); ++iter)
    {
        cout << *iter << endl;        //1 2 5 11 11 11 13 22
    }
    cout << endl;

    //剔除连续重复元素
    l3.push_back(3);
    l3.push_back(3);                //1 2 5 11 11 11 13 22 3 3
    l3.unique();
    for (iter = l3.begin(); iter != l3.end(); ++iter)
    {
        cout << *iter << endl;        //1 2 5 11 13 22 3
    }
    cout << endl;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值