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

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;
}

http://www.lryc.cn/news/2394026.html

相关文章:

  • Express教程【002】:Express监听GET和POST请求
  • mysql安装教程--笔记
  • C++ 观察者模式:设计与实现详解
  • 【PostgreSQL 03】PostGIS空间数据深度实战:从地图服务到智慧城市
  • HIT-csapp大作业:程序人生-HELLO‘s P2P
  • 深入探讨redis:主从复制
  • 帕金森常见情况解读
  • 清华大学发Nature!光学工程+神经网络创新结合
  • 【android bluetooth 案例分析 04】【Carplay 详解 3】【Carplay 连接之车机主动连手机】
  • C++学习-入门到精通【11】输入/输出流的深入剖析
  • NW969NW978美光闪存颗粒NW980NW984
  • 使用 ssld 提取CMS 签名并重签名
  • 前端基础之《Vue(17)—路由集成》
  • 大厂前端研发岗位PWA面试题及解析
  • 第十四章 MQTT订阅
  • element ui 表格 勾选复选框后点击分页不保存之前的数据问题
  • DataAgent产品经理(数据智能方向)
  • 腾讯云推出云开发AI Toolkit,国内首个面向智能编程的后端服务
  • 华为计试——刷题
  • 【AI-安装指南】Redis Stack 的安装与使用
  • LeetCode Hot100(矩阵)
  • spark在执行中如何选择shuffle策略
  • 前端-不对用户显示
  • WPF【10_2】数据库与WPF实战-示例
  • Hive的数据倾斜是什么?
  • Cursor奇技淫巧篇(经常更新ing)
  • Unity3D仿星露谷物语开发58之保存时钟信息到文件
  • lstm 长短期记忆 视频截图 kaggle示例
  • Spring Advisor增强规则实现原理介绍
  • 【HarmonyOS 5】鸿蒙中的UIAbility详解(二)