当前位置: 首页 > news >正文

C++ list数据删除、list数据访问、list反转链表、list数据排序

list数据删除,代码见下

#include<iostream>
#include<list>using namespace std;void printList(const list<int>& l) {for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {cout << *it << " ";}cout << endl;
}/*
1 pop_front
2 pop_back
3 erase clear
*/int main() {list<int> l = { -1, 3, 4, 7, 9, -1 };l.pop_back();printList(l);l.pop_front();printList(l);list<int>::iterator it = l.erase(l.begin());printList(l);cout << *it << endl;it = l.erase(it);printList(l);cout << *it << endl;it++;it++;l.erase(it, l.end());printList(l);l.clear();printList(l);cout << "l.size()= " << l.size() << endl;return 0;
}

结果见下,助理解

-1 3 4 7 9
3 4 7 9
4 7 9
4
7 9
7
7 9

l.size()= 0

list数据访问,代码见下

#include<iostream>
#include<list>using namespace std;void printList(const list<int>& l) {for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {cout << *it << " ";}cout << endl;
}int getListItemByIndex(list<int>& l, int index) {list<int>::iterator it = l.begin();while (index) {it++;index--;}return *it;
}int main() {list<int> l = { -1, 2, 1, 3, 4, 7, 9, -1 };list<int>::iterator it = l.begin();cout << getListItemByIndex(l, 4);return 0;
}

list反转列表,代码见下,直接找的内部源码

    void reverse() noexcept { // reverse sequenceconst _Nodeptr _Phead = _Mypair._Myval2._Myhead;_Nodeptr _Pnode       = _Phead;for (;;) { // flip pointers in a nodeconst _Nodeptr _Pnext = _Pnode->_Next;_Pnode->_Next         = _Pnode->_Prev;_Pnode->_Prev         = _Pnext;if (_Pnext == _Phead) {break;}_Pnode = _Pnext;}}

list数据排序,代码见下

#include<iostream>
#include<list>using namespace std;void printList(const list<int>& l) {for (list<int>::const_iterator it = l.begin(); it != l.end(); it++) {cout << *it << " ";}cout << endl;
}int cmp(int a, int b) {return a > b;
}int main() {list<int> l = { 2, 1, 3, 4, 7, 9 };printList(l);l.sort(cmp);printList(l);return 0;
}

相关文章:

  • C++23 已弃用特性
  • C++ 建造者模式:简单易懂的设计模式解析
  • 【Linux 学习计划】-- 进程地址空间
  • kafka学习笔记(三、消费者Consumer使用教程——消费性能多线程提升思考)
  • 使用 HTML + JavaScript 实现一个日历任务管理系统
  • 乐观锁:高效并发无锁方案
  • SpringBoot如何实现一个自定义Starter?
  • 华为云Flexus+DeepSeek征文|华为云 Flexus X 加速 Dify 平台落地:高性能、低成本、强可靠性的云上选择
  • 第304个Vulnhub靶场演练攻略:digital world.local:FALL
  • springboot集成websocket给前端推送消息
  • 生活小记啊
  • AWTK 嵌入式Linux平台实现多点触控缩放旋转以及触点丢点问题解决
  • 计算机视觉---GT(ground truth)
  • 每日八股文5.31
  • 【2025年软考中级】第二章2.2 程序设计语言的基本成分
  • VIP》》IP地址漂移
  • 5G 网络中的双向认证机制解析
  • MIT 6.S081 2020 Lab6 Copy-on-Write Fork for xv6 个人全流程
  • 神奇的平方和运算
  • MySQL存储架构深度解析:从引擎选型到云原生实践(2025最新版)
  • 盘锦市建设银行网站/平台推广方式
  • 内蒙古建设工程造价信息网解释/seo服务
  • 石景山网站建设的大公司/百度搜索排名推广
  • WordPress是什么编写/广告网站建设网站排名优化
  • 东阿县住房和城乡建设局网站/国内新闻最新
  • 正在为您跳转中/北京搜索优化排名公司