STL ---- list 使用

目录

初始化

追加和删除

迭代器

常用的常量

插入数据

删除数据

其他函数


初始化

使用assign函数初始化.

    
    l_num.assign(3, 5);
    l_data.assign({1, 2, 3, 4});

或者定义的时候就初始化:

list<int> l_data{1,2,3,4,5};

追加和删除

    l_num.push_back(10);  // 向后追加
    l_num.push_front(12); // 向前追加

    l_num.pop_back();   // 删除最后一个
    l_num.pop_front();  // 删除第一个

迭代器

    m_Bit = l_data.begin();     // 开始迭代器
    m_Eit = l_data.end();       // 结束迭代器
    m_cBit = l_data.cbegin();   // const 开始迭代器
    m_cEit = l_data.cend();     // const 结束迭代器
    m_RBit = l_data.rbegin();   // 从后向前begin
    m_RFit = l_data.rend();     // 从后向前end
    m_cRBit = l_data.crbegin(); // const 从后向前begin
    m_cRFit = l_data.crend();   // const 从后向前end

常用的常量

    int backeNum = l_data.back();  // 返回最后一个值
    int frontNum = l_data.front(); // 返回第一个值
    int sizeNum = l_data.size();   // 返回列表长度

插入数据

    l_data.insert(l_data.begin(), 8);       // 在最前面插入新元素,
    l_data.insert(l_data.end(), 3, 0);      // 在尾部插入3个0,
    l_data.insert(l_data.begin(), {9, 10}); // 在尾部插入9,10,
    l_data.emplace(l_data.begin(), 81);     // 在开始插入81
    l_data.emplace_back(12);                // 在结尾插入12
    l_data.emplace_front(22);               // 在开头插入22

删除数据

    l_data.erase(l_data.begin());    // 删除 迭代器位置的值
    l_data.erase(l_data.begin(), ++l_data.begin());    // 删除迭代器区间的值
    l_data.clear();    // 删除所有

其他函数

    bool bIs = l_data.empty();            // 判断是否为空
    l_data.sort();                        // 排序函数从小到大
    printData();
    l_data.sort(Compare);                 // 排序通过二元谓词选择排序方式
    printData();
    l_data.splice(l_data.begin(), l_num); // 把l_num插入l_data中,第一个参数是迭代器的位置
    l_data.splice(l_data.begin(), l_num, l_num.begin());
    l_data.splice(l_data.begin(), l_num, l_num.begin(), l_num.end());
    l_data.unique(); // 删除重复的元素
    printData();


bool Compare(int a1, int a2)
{
    return a1 > a2;
} // 会产生升序排列,若改为>,则会产生降序;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波雅_汉库克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值