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.链表的合并,去重和剪切

链表的合并

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

链表去重

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

链表的剪切

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

相关推荐
Ting.~10 分钟前
在java中接入百度地图
java·开发语言·dubbo
小短腿的代码世界12 分钟前
Qt对象树析构链与智能指针协同:零泄漏内存管理架构
开发语言·qt·架构
zhaqonianzhu20 分钟前
LOL切回桌面问题,采用监控抓出元凶方式
开发语言
Aurorar0rua22 分钟前
CS50 x 2024 Notes Arrays - 04
c语言·开发语言·学习方法
John_ToDebug29 分钟前
Chromium 132→148 升级实战:Legacy IPC 消息丢失问题深度解析
c++·chrome·ai·架构
wuminyu38 分钟前
Java世界中StringTable源码剖析
java·linux·c语言·jvm·c++
一起吃元宵1 小时前
百度网盘下载不限速的办法_百度网盘不限速
开发语言·百度网盘·下载不限速·不限速·百度网盘不限速
人道领域1 小时前
【LeetCode刷题日记】47.全排列Ⅱ
java·开发语言·算法·leetcode
ch3nyuyu1 小时前
socket套接字
开发语言·php
源图客1 小时前
境外电商 - 龙虾智能体-综合选品推荐报告
开发语言·javascript·ecmascript