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

面试二十五、remove和earse的区别

        vector中erase的作用是删除掉某个位置position或一段区域(begin, end)中的元素,减少其size,返回被删除元素下一个元素的位置。

        vector中remove的作用是将范围内为val的值都remove到后面,返回新的_last值(非val部分的end),但传入的原vector的end并没有发生改变,因此size也就没有变化。

remove

  remove 函数通常用于从容器(如数组、向量、列表等)中删除指定值的元素。但是,它不会改变容器的大小,而是将要删除的元素移动到容器的末尾,并返回一个指向新的逻辑末尾的迭代器。然后你可以使用容器的 erase 函数将这些元素从容器中删除。remove 可以用于序列式容器(如数组、向量),也可以用于关联式容器(如集合、映射),但是它的行为在关联式容器中可能会有所不同。

std::vector<int> vec{1, 2, 3, 4, 5};
auto new_end = std::remove(vec.begin(), vec.end(), 3);
vec.erase(new_end, vec.end());
// 此时 vec 变为 {1, 2, 4, 5}

erase

   erase 函数用于从容器中删除指定位置或范围的元素,并返回指向删除后的新位置的迭代器。它可以用于序列式容器和关联式容器,其行为在不同容器类型上可能有所不同。

std::vector<int> vec{1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第三个元素
// 此时 vec 变为 {1, 2, 4, 5}std::set<int> s{1, 2, 3, 4, 5};
s.erase(3); // 删除值为 3 的元素
// 此时 s 变为 {1, 2, 4, 5}

1. erase大小变了, remove大小不变

2. erase返回值是下一个元素的迭代器,remove返回一个指向新的逻辑末尾的迭代器

std::remove_if

  • std::remove_if 函数用于根据指定的条件删除容器中的元素。它将满足条件的元素移动到容器的末尾,并返回一个指向新的逻辑末尾的迭代器。和 std::remove 一样,它不会改变容器的大小,你需要使用容器的 erase 函数来彻底删除这些移动到末尾的元素。
    std::vector<int> vec{1, 2, 3, 4, 5};
    auto new_end = std::remove_if(vec.begin(), vec.end(), [](int x) { return x % 2 == 0; });
    vec.erase(new_end, vec.end());
    // 此时 vec 变为 {1, 3, 5}
    

相关文章:

面试二十五、remove和earse的区别

vector中erase的作用是删除掉某个位置position或一段区域&#xff08;begin, end)中的元素&#xff0c;减少其size&#xff0c;返回被删除元素下一个元素的位置。 vector中remove的作用是将范围内为val的值都remove到后面&#xff0c;返回新的_last值&#xff08;非val部分的en…...

普乐蛙元宇宙VR体验馆设备集体亮相VR文旅景区展

普乐蛙全国巡展又双叒叕开始了! 这次来到的是“好客山东”↓↓ 山东2024休闲旅游产业展 4月25日至27日&#xff0c;2024休闲旅游产业展在临沂国际博览中心举办。本次展会以“潮购文旅好品&#xff0c;乐享时尚生活”为主题&#xff0c;汇聚全国文旅产业上下游500多家企业、上万…...

北京大学-知存科技存算一体联合实验室揭牌,开启知存科技产学研融合战略新升级

5月5日&#xff0c;“北京大学-知存科技存算一体技术联合实验室”在北京大学微纳电子大厦正式揭牌&#xff0c;北京大学集成电路学院院长蔡一茂、北京大学集成电路学院副院长鲁文高及学院相关负责人、知存科技创始人兼CEO王绍迪、知存科技首席科学家郭昕婕博士及企业研发相关负…...

项目总结(一)docker总结

目录 一、引言 二、docker ------>2.1、docker介绍 ------>2.2、与虚拟机的区别 ------>2.3、Docke基本概念 ------>2.4、Docker内部结构 ------>2.5、Windows上使用docker ------>2.6、Linux上使用Docker ------>2.7、Docker常用命令 ------&g…...

深圳比创达EMC|EMC一站式解决方案:助力电子产品电磁兼容性升级

在当今电子信息技术飞速发展的时代&#xff0c;电磁兼容性&#xff08;EMC&#xff09;问题日益凸显&#xff0c;成为制约电子产品性能和质量的关键因素。为了满足市场对EMC问题的迫切需求&#xff0c;EMC一站式解决方案应运而生&#xff0c;成为解决EMC问题的有效途径。 一、…...

万兆以太网MAC设计(11)完整UDP协议栈仿真

文章目录 前言一、模块接口二、IP模块与ARP模块之间的联系三、整体协议栈仿真总结&#xff1a; 前言 目前除了巨帧处理逻辑之外&#xff0c;所有的准备工作都已经结束了&#xff0c;先进行整体的功能验证。 一、模块接口 所有模块接口皆采用AXIS数据流的形式&#xff0c;其中…...

【牛客】【模板】差分

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分模板。 b[0]a[0]; b[1]a[1]-a[0]; b[2]a[2]-a[1]; ...... b[n-1]a[n-1]-a[n-2]; b[n]a[n]-a[n-1]; 差分标记&#xff1a;b[l]k,b…...

鸿蒙内核源码分析(中断管理篇) | 江湖从此不再怕中断

关于中断部分系列篇将用三篇详细说明整个过程. 中断概念篇 中断概念很多&#xff0c;比如中断控制器&#xff0c;中断源&#xff0c;中断向量&#xff0c;中断共享&#xff0c;中断处理程序等等.本篇做一次整理.先了解透概念才好理解中断过程.用海公公打比方说明白中断各个概念…...

php使用rabbitmq

这里使用的是 php-amqplib composer require php-amqplib/php-amqplib生产端send.php <?phprequire_once "./vendor/autoload.php";use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;//交换机名称 $exc_name exchange.can…...

前端发起网络请求的几种常见方式(XMLHttpRequest、FetchApi、jQueryAjax、Axios)

摘要 前端发起网络请求的几种常见方式包括&#xff1a; XMLHttpRequest (XHR)&#xff1a; 这是最传统和最常见的方式之一。它允许客户端与服务器进行异步通信。XHR API 提供了一个在后台发送 HTTP 请求和接收响应的机制&#xff0c;使得页面能够在不刷新的情况下更新部分内容…...

通过氧气退火增强β-Ga₂O₃二极管.中国科技大学和河北半导体研究所的研究人员在这一特定领域取得了最新重大进展

上图所示&#xff1a;&#xff08;a&#xff09;增加台面有助于提高β-Ga2O3肖特基势垒二极管的阻断电压&#xff08;b&#xff09;。 氧气退火和自对准台面终端使β-Ga2O3二极管进一步走向商业化。 虽然β-Ga2O3电力电子技术已经取得了长足的进步&#xff0c;但仍然存在挑战&…...

C语言猜数字游戏

用C语言实现猜数字游戏&#xff0c;电脑随机给出一个范围内的数字&#xff0c;用户在终端输入数字&#xff0c;去猜大小&#xff1b;对比数字&#xff0c;电脑给出提示偏大还是偏小&#xff1b;不断循环&#xff0c;直到正确 #include <stdio.h> #include <time.h>…...

笔记本连接不上远程桌面,笔记本无法连接远程桌面的可能原因及解决方法

在使用远程桌面功能时&#xff0c;笔记本无法成功连接的情况可能由多种原因引起。为了有效地解决这个问题&#xff0c;我们需要逐一排查这些可能的原因&#xff0c;并采取相应的解决措施。 首先&#xff0c;网络连接稳定性是远程桌面连接成功的关键。请确保笔记本和远程计算机之…...

Android 音视频播放器 Demo(一)—— 视频解码与渲染

本篇作为 Android 音视频实战系列的第二篇文章&#xff0c;主要介绍视频解码与渲染过程。本系列文章目录如下&#xff1a; Android 音视频基础知识 Android 音视频播放器 Demo&#xff08;一&#xff09;—— 视频解码与渲染 Android 音视频播放器 Demo&#xff08;二&#xff…...

Flutter笔记:Widgets Easier组件库(3)使用按钮组件

Flutter笔记 Widgets Easier组件库&#xff08;3&#xff09;&#xff1a;使用按钮组件 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddre…...

荷香堪筑梦,鸳鸯和月寻。(变相BFS搜索)

本题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目&#xff1a; 样例&#xff1a; 输入 3 4 2 .... ***. ..a. 输出 yes 思路&#xff1a; 根据题意&#xff0c;这里 1 s 可以移动多次&#xff0c;我们将每次可以移动避开雪的的位置存储起来&#xff0c;判断当…...

智慧公厕建设,打造智慧城市基础设施新亮点

公共厕所是城市基础设施的重要组成部分&#xff0c;而智慧公厕的建设则是现代城市管理的创新之举。为了实现公厕的精细化管理和提供更便捷的服务&#xff0c;推进智慧公厕建设必须要实现技术融合、业务融合、数据融合的目标&#xff0c;跨越层级、地域、系统、部门和业务的限制…...

Kubernetes 教程:在 Containerd 容器中使用 GPU

原文链接:Kubernetes 教程:在 Containerd 容器中使用 GPU 云原生实验室本文介绍了如何在使用 Containerd 作为运行时的 Kubernetes 集群中使用 GPU 资源。https://fuckcloudnative.io/posts/add-nvidia-gpu-support-to-k8s-with-containerd/ 前两天闹得沸沸扬扬的事件不知道…...

LNMP部署wordpress

1.环境准备 总体架构介绍 序号类型名称外网地址内网地址软件02负载均衡服务器lb0110.0.0.5192.168.88.5nginx keepalived03负载均衡服务器lb0210.0.0.6192.168.88.6nginx keepalived04web服务器web0110.0.0.7192.168.88.7nginx05web服务器web0210.0.0.8192.168.88.8nginx06we…...

本地部署大模型ollama+docker+open WebUI/Lobe Chat

文章目录 大模型工具Ollama下载安装运行Spring Ai 代码测试加依赖配置写代码 ollama的web&Desktop搭建部署Open WebUI有两种方式Docker DesktopDocker部署Open WebUIDocker部署Lobe Chat可以配置OpenAI的key也可以配置ollama 大模型的选择 本篇基于windows环境下配置 大模型…...

2026 年软硬两用床垫,为何能做到不塌陷?

引言随着科技的不断进步和消费者需求的多样化&#xff0c;床垫市场也在不断创新。特别是软硬两用床垫&#xff0c;因其能够满足不同人群的需求而备受青睐。然而&#xff0c;如何确保床垫在长时间使用后不塌陷&#xff0c;仍然是一个技术难题。本文将探讨2026年软硬两用床垫如何…...

三分钟解锁Windows 11任务栏:Taskbar11让你的桌面重获自由

三分钟解锁Windows 11任务栏&#xff1a;Taskbar11让你的桌面重获自由 【免费下载链接】Taskbar11 Change the position and size of the Taskbar in Windows 11 项目地址: https://gitcode.com/gh_mirrors/ta/Taskbar11 还在为Windows 11那固执的任务栏设置感到束手无策…...

3DMAX建模救星实测:SmoothBoolean插件处理复杂布尔运算,到底有多稳多快?

3DMAX建模革命&#xff1a;SmoothBoolean插件深度测评与实战指南 在数字建模的世界里&#xff0c;布尔运算一直是把双刃剑——它既能快速实现复杂形状的切割与组合&#xff0c;又常常成为模型崩溃的导火索。对于专业建模师而言&#xff0c;面对机械零件、建筑构件或影视道具中那…...

LabVIEW虚拟仪表:数据流编程与测控应用的核心交互范式

1. 项目概述&#xff1a;为什么虚拟仪表是LabVIEW的灵魂如果你用过LabVIEW&#xff0c;或者哪怕只是看过它的界面&#xff0c;第一印象大概率是那些花花绿绿的旋钮、开关、仪表盘和波形图。很多人觉得这就是LabVIEW的“皮肤”&#xff0c;一个为了让程序看起来像真实仪器而做的…...

【NotebookLM文献综述加速器】:20年科研老兵亲测的5步高效综述法,3天完成导师认可的高质量综述?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM文献综述辅助的底层逻辑与科研适配性 NotebookLM 由 Google Research 推出&#xff0c;其核心并非通用大语言模型问答&#xff0c;而是以用户上传的私有文档&#xff08;PDF、TXT 等&#xf…...

ARMv9 CPYEN指令:内存拷贝优化技术详解

1. ARM内存拷贝指令CPYEN深度解析 在ARMv9架构中&#xff0c;内存拷贝操作通过专门的硬件指令得到了显著优化。CPYEN指令作为FEAT_MOPS特性的一部分&#xff0c;采用创新的三阶段流水线设计来提升数据传输效率。对于需要频繁处理内存块操作的系统开发者来说&#xff0c;理解这条…...

Apache RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景

本文将从技术角度了解 RocketMQ 的云原生架构&#xff0c;了解 RocketMQ 如何基于一套统一的架构支撑多元化的场景。 文章主要包含三部分内容。首先介绍 RocketMQ 5.0 的核心概念和架构概览&#xff1b;然后从集群角度出发&#xff0c;从宏观视角学习 RocketMQ 的管控链路、数…...

长期使用Taotoken聚合服务对开发效率的实际提升感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken聚合服务对开发效率的实际提升感受 作为一名在多个项目中集成大模型能力的开发者&#xff0c;我过去需要为不同的…...

C++/WinRT安全编程:Windows Runtime安全模型和最佳实践

C/WinRT安全编程&#xff1a;Windows Runtime安全模型和最佳实践 【免费下载链接】cppwinrt C/WinRT 项目地址: https://gitcode.com/gh_mirrors/cp/cppwinrt C/WinRT是Windows Runtime&#xff08;WinRT&#xff09;的现代C语言投影&#xff0c;它提供了类型安全的API访…...

第七届先进金属材料国际研讨会(AMM 2026)

第七届先进金属材料国际研讨会(AMM 2026) The 7th Intl Conference on Advanced Metallic Materials(AMM 2026) 2026年8月7-9日 中国昆明 &#x1f4c5; 重要信息 会议官网&#xff1a;https://www.academicx.org/AMM/2026/ 会议时间&#xff1a;2026年8月7-9日 会议地点…...