C++基础:list的基本使用

文章目录

list的本质就是带头双向循环列表

1.基本构造和插入删除

基本构造和尾插数据

与之前vector的方法相同直接调用即可

迭代器的分类

  1. 功能分类:
迭代器名称 迭代器类型
正向迭代器 iterator
反向迭代器 reverse_iterator
const迭代器 const_iterator/const_reverse_iterator
  1. 性质分类:
方向 支持运算符 对应迭代器的类型
单向 只支持++ forward_list/unordered_map...
双向 在方向上面支持 ++/-- 不支持+/= list/map/set...
随机 支持++/--/+/- vector/string/deque...

内置排序sort

std中有排序的算法,可以直接用来排任意类型的数据,使用时要包含头文件<algorithm>,使用方法如下:

但是在list中内置了排序,可以直接调用:

任意位置插入删除

这里不能再直接给值了,先找的插入的节点的位置在进行插入

例如:

当然也可以用std::find来查找

2.链表的合并,去重和剪切

链表的合并

将两个链表和到一起,但是两一个链表会置空:

链表去重

将链表的重复数据删除,例如:

链表的剪切

将链表的数据剪切到另一个上,要注意的是第一个参数为迭代器

相关推荐
Smoothcloud润云7 分钟前
GPU远程纳管节点频繁离线?心跳、DNS与时钟排障实战
运维·服务器·开发语言·人工智能·php·gpu算力
class心平气和11 分钟前
ADB 工具函数 Python 使用教程
开发语言·python·adb
闻缺陷则喜何志丹33 分钟前
【c++20】协程与屏障
c++·算法·c++20·携程·屏障
会编程的小孩33 分钟前
C++ 内存分区、堆与栈、static、union 完整修正版文档
c++
滕州市燕猫虎计算机科技工作室个体工商户37 分钟前
Java,Java NIO,Java NIO2,Java AIO,AsynchronousServerSocketChannel
java·开发语言·nio·aio·nio2
古城小栈42 分钟前
Rust 学习路线,供初学者参考
开发语言·rust
喵了几个咪1 小时前
GoWind CMS 拆解:给 NL2SQL 上四把锁——智能问数的安全边界
开发语言·后端·安全·微服务·golang·gowind
多弗朗皮卡丘1 小时前
C++的类型转换
开发语言·c++
FLJwu1 小时前
运动相机图像传感器选型实战|第二篇:参数看着一模一样,为什么骑行录像疯狂果冻、拖影翻车?
android·c语言·开发语言·数码相机·运动相机·oem 量产
驭渊的小故事1 小时前
从 JVM 底层看泛型:泛型擦除、Signature 属性与 Super Type Token 模式
java·开发语言·jvm