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

算法常用库函数——C++篇

前言

本文主要记录、整理、回顾在算法考试中常用的一些库函数,技巧等,不断更新中~

list 常用方法

在一般c++编程中,对于数组这样的数据结构,一般都使用vector居多,貌似list用的很少。但实际list也十分强大,是STL 中的双向链表容器,特别是适用于一些频繁插入的一些操作。
使用案例:leetcode 56.合并区间

1. 初始化和构造

  • list<int> lst; 默认构造函数,创建一个空链表。

  • list<int> lst(n, value); 使用给定值 value 初始化链表,链表包含 n 个元素。

  • list<int> lst(first, last); 通过两个迭代器区间 [first, last) 初始化链表。

  • list<int> lst(lst2); 使用另一个 list 拷贝构造一个新的链表。

2. 基本操作

  • lst.size(); 返回链表中元素的个数。

  • lst.empty(); 检查链表是否为空,如果为空返回 true,否则返回 false

  • lst.clear(); 清空链表,删除所有元素。

  • lst.front(); 返回链表的第一个元素。

  • lst.back(); 返回链表的最后一个元素。

3. 元素访问与修改

  • lst.push_front(value); 在链表的前面插入元素 value

  • lst.push_back(value); 在链表的末尾插入元素 value

  • lst.pop_front(); 删除链表的第一个元素。

  • lst.pop_back(); 删除链表的最后一个元素。

  • lst.insert(it, value); 在迭代器 it 所指向位置之前插入元素 value

  • lst.erase(it); 删除迭代器 it 所指向的元素。

  • lst.erase(first, last); 删除从 firstlast 范围的元素。

4. 查找与修改

  • lst.find(value); 查找链表中第一次出现的元素 value,返回指向该元素的迭代器,如果没有找到返回 lst.end()

  • lst.remove(value); 删除链表中所有值为 value 的元素。

  • lst.remove_if(pred); 删除满足谓词 pred 的所有元素。

  • lst.reverse(); 反转链表中的元素顺序。

  • lst.sort(); 对链表中的元素进行排序。

  • lst.unique(); 删除链表中相邻的重复元素。

5. 拼接与操作

  • lst.splice(it, lst2);lst2 中的所有元素插入到 lst 中,插入位置在迭代器 it 指向的位置之前。lst2 会变为空。

  • lst.splice(it, lst2, it2);lst2it2 指向的元素插入到 lst 中,插入位置是迭代器 it 指向的位置之前。

  • lst.splice(it, lst2, first, last);lst2 中的从 firstlast 范围的元素插入到 lst 中,插入位置是迭代器 it 指向的位置之前。

6. 迭代器操作

  • lst.begin(); 返回指向链表第一个元素的迭代器。

  • lst.end(); 返回指向链表末尾(一个越界位置)的迭代器。

  • lst.rbegin(); 返回指向链表最后一个元素的反向迭代器。

  • lst.rend(); 返回指向链表头部之前的一个反向迭代器。

  • advance(it, n); 让迭代器 it 向前移动 n 步。

  • it = lst.insert(it, value); 在迭代器 it 指向的位置插入元素 value,返回插入元素的新位置。

7. 其他辅助方法

  • lst.resize(n); 调整链表的大小,如果 n 小于当前大小,链表会被截断;如果大于当前大小,会插入默认值。

  • lst.resize(n, value); 调整链表的大小,并使用 value 填充新增的元素。

持续补充更新中~

相关文章:

算法常用库函数——C++篇

前言 本文主要记录、整理、回顾在算法考试中常用的一些库函数&#xff0c;技巧等&#xff0c;不断更新中~ list 常用方法 在一般c编程中&#xff0c;对于数组这样的数据结构&#xff0c;一般都使用vector居多&#xff0c;貌似list用的很少。但实际list也十分强大&#xff0c…...

怎么把多个PDF合并到一起-免费实用PDF编辑处理工具分享

>>更多PDF文件处理应用技巧请前往 96缔盟PDF处理器 主页 查阅&#xff01; 序言 我之前的文章也有介绍过如何使用96缔盟PDF处理器对PDF文件合并或者批量合并的介绍&#xff0c;但是当时是使用DMPDFUtilTool1.0版本进行的&#xff0c;当时的功能尚不完善&#xff0c;还不支…...

RFC协议简要介绍——有关TCP拥塞控制的RFC

1.RFC Request For Comments&#xff08;RFC&#xff09;&#xff0c;是一系列以编号排定的文件。文件收集了有关互联网相关信息&#xff0c;以及UNIX和互联网社区的软件文件。RFC文件是由Internet Society&#xff08;ISOC&#xff09;赞助发行。基本的互联网通信协议都有在R…...

Speckly:基于Speckle文档的RAG智能问答机器人

前言 Speckly 是一个基于 检索增强生成 (RAG) 技术的智能问答机器人&#xff0c;它能像一位经验丰富的工程师&#xff0c;理解你的问题&#xff0c;并从 Speckle 文档中精准地找到答案。更厉害的是&#xff0c;它甚至可以帮你生成代码片段&#xff01;&#x1f680; 本文将详…...

香橙派5Plus启动报错bug: spinlock bad magic on cpu#6, systemd-udevd/443

一、问题 如图&#xff1a; 接上调试串口&#xff0c;每次启动都会报错。不过使用过程中没有发现有什么影响。 百度查阅&#xff0c;有一位博主提到&#xff0c;但是没有细说解决方案&#xff1a; spinlock变量没有初始化_spinlock bad magic on-CSDN博客https://blog.csdn.n…...

电子应用设计方案74:智能家庭对讲系统设计

智能家庭对讲系统设计 一、引言 智能家庭对讲系统作为智能家居的重要组成部分&#xff0c;为家庭成员之间以及与访客的沟通提供了便捷、高效的方式。本设计方案旨在打造一个功能强大、稳定可靠、操作简便且具有良好扩展性的智能家庭对讲系统。 二、系统概述 1. 系统目标 - 实…...

node js 过滤空白行

data.trim().split(\n).filter(user > user); 只过滤文件开头和结尾的空白行。 data.split(\n).map(token > token.trim()).filter(token > token); 这种方法不仅移除了文件开头和结尾的空白行&#xff0c;还确保了每一行内部的多余空白也被清理掉。此外&#xff0c;…...

武泳樽携手AI AD Manager荣获红点奖,智能广告管理系统备受瞩目

近日,由著名设计师武泳樽主导设计的AI AD Manager在2024年红点奖评选中荣获大奖,这一殊荣不仅彰显了他在创新设计领域的卓越实力,更巩固了AI AD Manager作为智能广告技术标杆的地位。凭借独特的用户体验设计、尖端的AI驱动功能和出色的技术融合,AI AD Manager在激烈的国际竞争中…...

Express.js 有哪些常用的中间件?

在使用 Express.js 开发应用程序时&#xff0c;中间件&#xff08;Middleware&#xff09;是处理请求和响应的关键组件。它们可以执行各种任务&#xff0c;如解析请求体、添加HTTP头部、记录日志等。以下是一些常用的中间件&#xff1a; body-parser 用于解析传入的请求体。它…...

WordPress File Upload插件 任意文件读取漏洞复现(CVE-2024-9047)(附脚本)

0x01 产品描述: File Upload插件是一款功能强大的WordPress站点文件上传插件,它允许用户在WordPress站点中的文章、页面、侧边栏或表单中轻松上传文件到wp-contents目录中的任何位置。该插件使用最新的HTML5技术,确保在现代浏览器和移动设备上都能流畅运行,同时也兼容旧的浏…...

qt QZipReader详解

1、概述 QZipReader 是 Qt 中用于从 .zip 文件中读取和提取文件内容的类。它提供了便捷的方法来访问压缩包中的文件和目录&#xff0c;并允许你解压缩单个或多个文件。通过 QZipReader&#xff0c;你可以以编程方式读取 .zip 文件中的内容&#xff0c;并提取它们到目标目录中。…...

C# 超高速高性能写日志

原理 使用列队先缓存到内存&#xff0c;独立线程从列队中使用log4net写到磁盘上。 日志写入列队 public void EnqueueMessage(string message, FlashLogLevel level, Exception ex null) {if ((level FlashLogLevel.Debug && _log.IsDebugEnabled)|| (level Flas…...

阿里云人工智能ACA(五)——深度学习基础

一、深度学习概述 1. 深度学习概念 1-1. 深度学习基本概念 深度学习是机器学习的一个分支基于人工神经网络&#xff08;模仿人脑结构&#xff09;通过多层网络自动学习特征能够处理复杂的模式识别问题 1-2. 深度学习的优点与缺点 优点 强大的特征学习能力可以处理复杂问题…...

入职体检尿潜血3+能通过吗,什么原因引起

在许多行业入职体检中&#xff0c;尿液检测是一个重要的组成部分。尿潜血&#xff08;也称为尿中血红蛋白&#xff09;是尿液常规检查中一种常见的指标&#xff0c;其结果可以反映出身体的健康状况。当检测结果为“尿潜血3”时&#xff0c;很多人会感到困惑&#xff0c;尤其是在…...

vue最新源码探索分析

我在github上fork了最新版本vue3.5版本的源码并做了大幅删除&#xff0c;保留最核心的代码&#xff0c;有兴趣的可以看看&#xff0c;欢迎大家提出PR 仓库地址 https://github.com/greatanimalion/core 本项目vue版本3.5.13 为了方便查看与分析&#xff0c;减少心智负担 已…...

Kivy App开发之打包apk

Kivy项目可以为windows,max os,安卓,IOS等平台创建运行python的程序包。本文介绍如何将程序打包成apk并在安卓系统上安卓运行。 打包apk的方法主要有三种 使用Kivy Launcher,添加项目文件夹(必须包含main.py文件和android.txt文件),启动Kivy Launcher后就会运行,要生成a…...

【Java 数据结构】LinkedList 类 和 模拟实现链表

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 什么是 LinkedList &#xff1f; 2 LinkedList 的使用 2.1 LinkedList 的构造 2.2 LinkedList 的常用方法 2.3 LinkedList 的遍历 3. 单链表的模拟实现…...

VS2022 中的 /MT /MTd /MD /MDd 选项

我们有时编译时,需要配置这个 运行库,指定C/C++运行时库的链接方式。 如下图 那么这些选项的含义是什么? /MT:静态链接多线程库 /MT选项代表“Multi-threaded Static”,即多线程静态库。选择此选项时,编译器会从运行时库中选择多线程静态连接库来解释程序中的代码,…...

产品初探Devops!以及AI如何赋能Devops?

DevOps源自Development&#xff08;开发&#xff09;和Operations&#xff08;运维&#xff09;的组合&#xff0c;是一种新的软件工程理念&#xff0c;旨在打破传统软件工程方法中“开发->测试->运维”的割裂模式&#xff0c;强调端到端高效一致的交付流程&#xff0c;实…...

两种不同的LuaBehaviour生命周期绑定

在学习xLua时&#xff0c;发现xLua和LoxodonFramework的LuaBehaviour稍微有些不同&#xff0c;其中一个点是在调用DoString方法时的区别 1. xLua的版本中 直接使用Lua脚本环境进行绑定&#xff0c;这时候的Lua脚本调用生命周期函数是这样的 直接在Lua脚本中写函数就行 2. Lo…...

Graphormer开源大模型实战:分子图建模替代传统GNN的5大优势解析

Graphormer开源大模型实战&#xff1a;分子图建模替代传统GNN的5大优势解析 1. Graphormer模型概述 Graphormer是微软研究院开发的基于纯Transformer架构的图神经网络模型&#xff0c;专门为分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测而设计。与传统…...

Dism++深度解析:Windows系统管理与优化专业指南

Dism深度解析&#xff1a;Windows系统管理与优化专业指南 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism作为一款功能强大的开源Windows系统管理工具&…...

从仿真到实战:在CST/HFSS中如何设置周期性边界条件评估紧耦合天线阵元性能

从仿真到实战&#xff1a;在CST/HFSS中设置周期性边界条件评估紧耦合天线阵元性能 天线阵列设计中最具挑战性的环节之一&#xff0c;是如何准确预测单个阵元在阵列环境中的真实工作状态。当我在设计第一个超宽带相控阵时&#xff0c;曾因忽视阵元间互耦效应导致实物测试结果与仿…...

UnityLockstep:构建零延迟多人游戏的终极同步框架

UnityLockstep&#xff1a;构建零延迟多人游戏的终极同步框架 【免费下载链接】UnityLockstep Deterministic Lockstep with clientside prediction and rollback 项目地址: https://gitcode.com/gh_mirrors/un/UnityLockstep 在多人游戏开发中&#xff0c;你是否曾为网…...

AI 开发实战:实验和试点项目怎么记录,才不会做完就散

AI 开发实战&#xff1a;实验和试点项目怎么记录&#xff0c;才不会做完就散 一、这个问题为什么值得专门拿出来做&#xff1f; 在 AI 工程落地里&#xff0c;真正拖慢团队的往往不是模型本身&#xff0c;而是流程和协作方式没有跟上。 围绕“实验和试点项目怎么记录&#xff0…...

什么是 AI Agent?它和直接调用大模型 API 做一次问答有什么本质区别?

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;AI大模型原理和应用面试题 文章目录一、&#x1f340;AI Agent概念、AI Agent和直接…...

生成单颗10mm级配的cluster骨料

PFC5.0代码&#xff0c;可以破碎的cluster&#xff0c;可模拟碎石、矿渣混凝土材料&#xff0c;ball与cluster颗粒&#xff0c;单轴压缩实验&#xff0c;内涵声发射事件数代码&#xff0c;分析统计ball与ball直接的裂纹数目&#xff0c;cluster内部破碎的裂纹数目上周帮同门调P…...

VS Code 通义灵码:从安装到实战编码的全方位指南

1. 通义灵码&#xff1a;你的AI编程助手 第一次听说通义灵码时&#xff0c;我正在为一个Python项目焦头烂额。那是一个需要处理大量数据清洗的脚本&#xff0c;我写了半天还是觉得效率太低。同事随口说了句"试试通义灵码吧"&#xff0c;没想到这个决定让我少加了三天…...

Intent-MPC论文复现手记:我是如何用Docker搞定ROS多版本环境隔离的

Intent-MPC论文复现实战&#xff1a;基于Docker的ROS多版本环境隔离方案 当我在复现Intent-MPC这篇关于无人机动态环境轨迹预测的前沿论文时&#xff0c;最头疼的不是算法理解&#xff0c;而是环境配置——ROS Noetic的依赖冲突、系统库版本不匹配、图形界面无法显示等问题接踵…...

Vue3+ECharts水球图实战:手把手教你打造个性化数据展示组件

Vue3与ECharts水球图深度整合&#xff1a;打造企业级数据可视化组件 在数据驱动的时代&#xff0c;可视化呈现已成为现代Web应用的核心竞争力。水球图&#xff08;Liquid Fill Chart&#xff09;作为一种直观展示百分比数据的可视化形式&#xff0c;在仪表盘、进度监控和数据看…...