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

【C++】深入理解迭代器(Iterator)


在这里插入图片描述

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]
本文专栏: C++

文章目录

  • 💯前言
  • 💯什么是迭代器?
    • 迭代器与指针的比较
  • 💯`std::string` 中的迭代器
    • 示例代码与图示分析
      • 运行结果:
      • 图示说明:
    • 小提示
  • 💯正序遍历与逆序遍历
    • 正序遍历
      • 示例代码
      • 运行结果
    • 逆序遍历
      • 示例代码
      • 运行结果
      • 注意
  • 💯修改字符串内容
      • 示例代码
      • 运行结果
    • 解释
  • 💯拓展:迭代器的更多功能
    • 迭代器类型
    • 常用 STL 算法与迭代器
      • 示例:查找特定字符
  • 💯小结


在这里插入图片描述


💯前言

  • C++ 是一门功能强大的编程语言,其标准库(STL, Standard Template Library)提供了多种高效的工具来处理数据。其中,迭代器(Iterator)是一种极为重要的工具,可以帮助开发者优雅地操作容器,遍历、访问和修改数据。迭代器的作用类似于指针,但比指针更强大和灵活。本文将以 std::string 为例,结合代码和图示,从基本概念到实际应用,带领读者深入理解 C++ 中迭代器的核心功能和用法。
    C++ 参考手册
    在这里插入图片描述

💯什么是迭代器?

迭代器(Iterator)是 C++ 标准模板库中的一种对象,专为遍历容器中的元素而设计。它的工作方式类似于指针,但具备更多功能。

迭代器的主要特点包括:

  • 抽象化:通过统一的接口操作不同类型的容器(如 vectorstringlist 等)。
  • 灵活性:支持顺序遍历、逆序遍历,以及访问和修改容器中的元素。
  • 安全性:迭代器相比裸指针更安全,更符合现代 C++ 的编程规范。

在迭代器的使用过程中,特别需要注意访问迭代器指向的值时必须解引用(* 操作符)。

迭代器与指针的比较

迭代器和指针有许多相似之处,例如它们都可以通过递增(++)、递减(--)、解引用(*)来访问和操作数据。但是,迭代器是针对容器设计的,它们具有更强的抽象能力,可以屏蔽容器的底层实现,从而使代码更通用和易维护。

💯std::string 中的迭代器

C++ 中的 std::string 提供了多种迭代器,用于遍历字符串中的字符和修改字符串的内容。下面是我们将重点讨论的两个基本方法:

  • begin():返回指向字符串第一个字符的迭代器。
  • end():返回指向字符串最后一个字符的下一个位置的迭代器。

示例代码与图示分析

让我们通过具体的代码和图示来理解 begin()end() 的用法。

#include <iostream>
#include <string>
using namespace std;int main() {string s = "abcdef";string::iterator it1 = s.begin();string::iterator it2 = s.end();cout << (it1 < it2) << endl;cout << it1 - it2 << endl;return 0;
}

运行结果:

1
-6

图示说明:

假设字符串 s = "abcdef",其下标和迭代器关系如下:

下标012345-
字符abcdef
迭代器s.begin()s.end()
  • s.begin() 返回指向第一个字符(即 a)的迭代器。
  • s.end() 返回指向超出最后一个字符的迭代器位置(并非 f 的位置,而是 f 后面的位置)。
  • 在输出中:
    • it1 < it2 判断迭代器的位置关系,结果为 true(即 1)。
    • it1 - it2 计算迭代器间的距离,结果为 -6,表示从起点到终点有 6 个字符。

小提示

  • 迭代器支持大小比较(<> 等),也支持加减整数(it + nit - n)。
  • 两个迭代器相减的结果是它们之间的元素个数。
  • 迭代器的灵活操作为字符串的高效遍历和操作提供了保障。

💯正序遍历与逆序遍历

正序遍历

正序遍历是迭代器最常见的应用方式,从字符串的起始位置到结束位置依次访问每个字符。

示例代码

#include <iostream>
#include <string>
using namespace std;int main() {string s = "abcdef";// 使用 auto 自动推导迭代器类型for (auto it = s.begin(); it != s.end(); ++it) {cout << *it << ' ';}// 或者显式声明迭代器类型for (string::iterator it = s.begin(); it != s.end(); ++it) {cout << *it << ' ';}return 0;
}

运行结果

a b c d e f

逆序遍历

逆序遍历则是从字符串的末尾位置开始,逐步向前遍历。

示例代码

#include <iostream>
#include <string>
using namespace std;int main() {string s = "abcdef";for (string::iterator it = s.end() - 1; it >= s.begin(); --it) {cout << *it << ' ';}return 0;
}

运行结果

f e d c b a

注意

逆序遍历中,s.end() - 1 指向最后一个字符,而不是 s.end()

💯修改字符串内容

迭代器不仅可以用于遍历,还可以直接修改容器中的内容。

示例代码

#include <iostream>
#include <string>
using namespace std;int main() {string str = "abcdef";// 修改前输出原字符串cout << str << endl;// 使用迭代器修改字符串for (string::iterator it = str.begin(); it != str.end(); ++it) {*it = 'x'; // 修改每个字符为 'x'}// 修改后输出新字符串cout << str << endl;return 0;
}

运行结果

abcdef
xxxxxx

解释

通过迭代器访问字符串中的每个字符,并使用 *it = 'x' 将其修改为 x,实现了对原字符串的就地修改。


💯拓展:迭代器的更多功能

迭代器类型

C++ 提供了多种迭代器,常见的有:

  • 输入迭代器(Input Iterator):只读访问容器中的元素。
  • 输出迭代器(Output Iterator):只写访问容器中的元素。
  • 前向迭代器(Forward Iterator):支持单向遍历。
  • 双向迭代器(Bidirectional Iterator):支持正序和逆序遍历(如 string::iterator)。
  • 随机访问迭代器(Random Access Iterator):支持随机访问容器中的任意元素(如 vector 的迭代器)。

常用 STL 算法与迭代器

C++ STL 提供了大量算法,可以与迭代器配合使用,例如:

  • std::find:查找特定元素。
  • std::sort:排序。
  • std::copy:复制容器内容。

示例:查找特定字符

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;int main() {string s = "abcdef";auto it = find(s.begin(), s.end(), 'c');if (it != s.end()) {cout << "Found: " << *it << endl;} else {cout << "Not Found" << endl;}return 0;
}

💯小结

通过本文的详细分析,我们可以看到,迭代器是 C++ STL 中操作容器的核心工具。无论是遍历、修改还是配合算法使用,迭代器都能够提供高效且优雅的解决方案。本文以 std::string 为例,结合代码和图示,讲解了迭代器的基本用法,并拓展了迭代器的更多应用场景。

迭代器的灵活性为开发者带来了极大的便利,但也需要我们在使用时注意边界条件和逻辑错误。如果你对 C++ 中其他容器(如 vectormap 等)感兴趣,迭代器同样适用,甚至更为强大,欢迎进一步探索!


在这里插入图片描述


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

相关文章:

【C++】深入理解迭代器(Iterator)

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;什么是迭代器&#xff1f;迭代器与指针的比较 &#x1f4af;std::string 中的迭代器示例代码与图示分析运行结果&#xff1a;图示说明&#xff1a; 小提示 &#x1f4af;正…...

微信小程序实现长按录音,点击播放等功能,CSS实现语音录制动画效果

有一个需求需要在微信小程序上实现一个长按时进行语音录制&#xff0c;录制时间最大为60秒&#xff0c;录制完成后&#xff0c;可点击播放&#xff0c;播放时再次点击停止播放&#xff0c;可以反复录制&#xff0c;新录制的语音把之前的语音覆盖掉&#xff0c;也可以主动长按删…...

QPS和TPS 的区别是什么?QPS 大了会有什么问题,怎么解决?

QPS 和 TPS 的区别是什么&#xff1f;QPS 大了会有什么问题&#xff0c;怎么解决&#xff1f; QPS&#xff08;Queries Per Second&#xff09;和 TPS&#xff08;Transactions Per Second&#xff09;都是衡量系统性能的重要指标&#xff0c;尤其是在 Web 服务、数据库和分布…...

小程序开发-页面事件之上拉触底实战案例

&#x1f3a5; 作者简介&#xff1a; CSDN\阿里云\腾讯云\华为云开发社区优质创作者&#xff0c;专注分享大数据、Python、数据库、人工智能等领域的优质内容 &#x1f338;个人主页&#xff1a; 长风清留杨的博客 &#x1f343;形式准则&#xff1a; 无论成就大小&#xff0c;…...

[读书日志]从零开始学习Chisel 第六篇:Scala面向对象编程——特质(敏捷硬件开发语言Chisel与数字系统设计)

3.4特质 3.4.1什么是特质 特质使用trait开头&#xff0c;它与单例对象很像&#xff0c;两者都不能有输入参数&#xff0c;但单例对象是具体的&#xff0c;特质是抽象的。两者都不能用new实例化&#xff0c;类&#xff0c;单例对象&#xff0c;特质三者内部都可以包含字段和方…...

导航技术的分类

导航技术可以根据不同的分类标准进行划分&#xff0c;以下是从不同角度对导航技术的分类&#xff1a; 一、按导航信息获取原理分类 无线电导航&#xff1a;利用无线电波的传播特性来测定运动体的位置、速度等导航参数。常见的无线电导航系统包括罗兰-C、奥米加、台卡等。卫星…...

学习标准库atomic_base.h中typedef enum memory_order

1、背景 在多线程编程中&#xff0c;特别是在使用原子操作时&#xff0c;内存顺序&#xff08;Memory Order&#xff09;是一个关键的概念。在C11及其之后的标准中&#xff0c;memory_order 枚举类型&#xff08;typedef enum memory_order&#xff09;用于控制原子操作的内存…...

git push -f 指定分支

要将本地代码推送到指定的远程分支&#xff0c;你可以使用以下步骤和命令&#xff1a; 确认远程仓库&#xff1a; 确保你的本地仓库已经与远程仓库关联。你可以使用以下命令查看当前的远程仓库状态&#xff1a; git remote -v查看本地分支&#xff1a; 使用命令查看当前存在的本…...

ADO.NET知识总结3---SqlCommand命令对象

目录 4.1 SqlCommand对象介绍 4.2 SqlCommand创建 4.3 Command执行方法 4.1 SqlCommand对象介绍 SqlCommand&#xff1a;Ado.Net中执行数据库命令的对象。 它对SQLServer数据库执行一个T-SQL语句或存储过程。 重要属性: Connection: SqlCommand对象使用的SqlConnection对…...

CANopen转EtherCAT网关连接伺服驱动

在现代工业自动化领域&#xff0c;CANopen和EtherCAT是两种常见的通信协议&#xff0c;各自在不同的应用场景中发挥着重要作用。然而&#xff0c;随着工业自动化系统的日益复杂化&#xff0c;不同设备间的通信需求也变得多样化。因此&#xff0c;如何实现不同协议设备之间的无缝…...

前端基础技术全解析:从HTML前端基础标签语言开始,逐步深入CSS样式修饰、JavaScript脚本控制、Ajax异步通信以及WebSocket持久通信

目录 前言&#xff1a; 1.前端技术html简单了解&#xff1a; 1.1HTML代码是由标签构成的。 1.2.HTML 文件基本结构 1.3.HTML 常见标签 标题标签: 段落标签: p 文本格式化标签 图片标签&#xff1a; 超链接标签: a 测试代码&#xff1a; 展示效果&#xff1a; 表单…...

试用kotlin multiplatform

目录 多平台框架简介 示例工程建立与运行 常用库 桌面平台遇到的一些问题 使用总结 多平台框架简介 多平台的框架不少,flutter,rust,每一个都是优点明显,缺点也明显. flutter的桌面端控件少,质量不一.dart语言丑陋又慢.我不喜欢它. rust,桌面gui不成熟,成熟一些的slint…...

Scratch023-(沙漠变绿洲)

提示&#xff1a; 知识回顾&#xff1a; 1、画笔的各个属性 2、“将笔的颜色设为”积木 3、“将笔的颜色增加”积木 文章目录 前言一、案例展示二、功能分析三、步骤拆解1.背景角色和画笔的初始化&#xff08;1&#xff09;初始化画笔2、一起绘制一个小雨滴3、绘制多个随机的小…...

【Linux】深入理解文件系统(超详细)

目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 &#x1f4cc;补充&#xff1a; &#x1f4cc;通常网络中用高低电平&#xff0c;磁盘中用磁化方向来表示。以下是具体说明&#xff1a; &#x1f4cc;如果有一块磁盘要进行销毁该怎么办&#xff1f; 1-2 磁盘存储结构 ​编辑…...

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息&#xff0c;帮助分析连接池的状态和性能瓶颈&#xff1a; import org.apache.commons.pool2.impl.GenericO…...

微信小程序实现登录注册

文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…...

网络安全-kail linux 网络配置(基础篇)

一、网络配置 1.查看网络IP地址&#xff0c; 我的kail&#xff1a;192.168.15.128 使用ifconfig查看kail网络连接情况&#xff0c;ip地址情况 又复制了一台kail计算机的IP地址。 再看一下windows本机&#xff1a;使用ipconfig进行查看&#xff1a; 再看一下虚拟机上的win7I…...

Lua语言的软件工程

Lua语言的软件工程 引言 在软件工程领域&#xff0c;编程语言的选择对项目的成功与否有着至关重要的影响。Lua语言作为一种轻量级、高效、可扩展的脚本语言&#xff0c;近年来在游戏开发、嵌入式系统以及其他高性能应用程序中得到了广泛应用。本文将深入探讨Lua语言的特点、优…...

【Rust自学】11.4. 用should_panic检查恐慌

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.4.1. 验证错误处理的情况 测试函数出了验证代码的返回值是否正确&#xff0c;还需要验证…...

基于深度模型的印章检测(c++)

效果展示&#xff1a; 有点&#xff1a; &#xff08;1&#xff09;快速&#xff08;几十毫秒级别&#xff09;&#xff1b; &#xff08;2&#xff09;精度高&#xff1b; int main() {std::string imagePath;// 提示用户输入图像路径std::cout << "请输入图像路…...

C#Struct堆栈

Struct若其内部含有堆对象&#xff0c;Struct的该对象放在堆上&#xff1b; Struct当做参数传递时&#xff0c;其堆属性作为引用传递&#xff0c;值属性还是作为值传递&#xff1b; struct TS { public int[] t1; public int t2; } public void TF1(TS t) { int[] t1 t.t1; …...

STM32之一种双通路CAN总线消息备份冗余处理方法(十三)

STM32F407 系列文章 - Dual-CANBus-ProMethod&#xff08;十三&#xff09; 目录 前言 一、现状分析 二、解决思路 1.应用场景网络结构图 2.数据发送流程 3.数据接收流程 4.用到的模块 1.CAN网络速率及时间片分配 2.CAN网络消息ID组成 3.设备节点定义 4.数据格式说明…...

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…...

客户端 ORA-12537: TNS: 连接已关闭

现象&#xff1a; 1、双节点数据库. 2、客户端连接 db1 正常 3、客户端连接db2 显示&#xff1a;ORA-12537: TNS: 连接已关闭 4、数据库正常启动 5、lsnrctl status 检查 监听正常 6、lsnrctl stop/start 重启监听正常 过程&#xff1a; 冲浪 查看网友的解决方法。 连接&…...

.net开发环境安装配置以及程序发布 详细教程

文章目录 一、安装visual studio1.1推荐win10操作系统1.2推荐vs20221.3选择工作负载 二、新建基于.net的winform应用程序2.1为什么要.net 2.22.2.1 选择Window窗体应用 三、发布.net应用 一、安装visual studio 1.1推荐win10操作系统 1.2推荐vs2022 社区版、专业版、企业版都…...

盛最多水的容器

一、题目 给定一个长度为n的整数数组height。有n条垂线&#xff0c;第i条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线&#xff0c;使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。也就是求x轴与y轴的面积。 说明&#xff1a;你不能倾…...

spring boot解决swagger中的v2/api-docs泄露漏洞

在配置文件中添加以下配置 #解决/v2/api-docs泄露漏洞 springfox:documentation:swagger-ui:enabled: falseauto-startup: false 处理前&#xff1a; 处理后&#xff1a;...

MySQL和Hive中的行转列、列转行

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 MySQL1.行转列2.列转行 Hive1.行转列2.列转行(1)侧窗(2)union MySQL 1.行转列 把多行转成列。直接group&#xff0c;sum(if()) 2.列转行 Hive 1.行转列 select name,sum(if(kmshuxu…...

【关于 vite 使用plugin-legacy兼容低版本浏览器仍出现的问题的情况】

项目使用了vitevue3ts的方案&#xff0c;采用plugin-legacybabel适配低版本浏览器 在开发工作中&#xff0c;项目使用了vitevue3ts的方案&#xff0c;但是需要适配低版本浏览器。首先使用了vitejs/plugin-legacy插件&#xff0c;配置完成后发现并不能解决问题&#xff0c; 出现…...

【集成学习】Bagging算法详解及代码实现

文章目录 1. Bagging集成学习算法1.1 简介1.2 基本步骤1.3 Bagging优缺点1.4 随机森林&#xff1a;Bagging的一个重要应用1.5 总结 2. Python代码实现3. 如何理解偏差与方差3.1 偏差&#xff08;Bias&#xff09;3.2 方差&#xff08;Variance&#xff09;3.3 方差与偏差的权衡…...

HTML5实现好看的中秋节网页源码

HTML5实现好看的中秋节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 节日由来界面1.4 节日习俗界面1.5 节日文化界面1.6 节日美食界面1.7 节日故事界面1.8 节日民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看…...

OBS Zoom to Mouse 脚本安装与使用指南

前言&#xff1a;OBS有两个不错的放大插件&#xff0c;经过多台电脑测试发现&#xff0c;唯一好用的就是下面介绍的obs-zoom-to-mouse.lua这个插件&#xff0c;因为它安装简单&#xff0c;不需要python&#xff0c;设置更人性化性价比极高。 zoom_and_follow_mouse.py 这个pyth…...

使用codeblock+wxwidgets做的界面,运行时额外出现了一个cmd窗口

如何不让cmd窗口出现&#xff1f; 定位到Workspace project,选择菜单Project->Properties 将Type从Console application改为GUI application, 然后rebuild 这个project 之后再运行就没有cmd窗口了&#xff1a; 原因是在创建Project的时候选择了console mode application, 可…...

AI眼镜赛马,谁是C位,谁在边缘?

CES2025正在火热开展&#xff0c;智能眼镜成为最受关注的赛道之一。 去年8月&#xff0c;Meta曾一枝独秀引领AI眼镜爆发了一次大行情&#xff0c;带动AI眼镜市场百花齐放&#xff0c;近几个月更是爆发新品潮。 据悉&#xff0c;包括国内的雷神科技、恺英网络投资的乐相科技&a…...

Linux中彻底卸载Oracle 19.25单实例数据库

Linux中彻底卸载Oracle 19.25单实例数据库 1、关闭数据库实例2、关闭数据库监听3、执行deinstall卸载脚本4、删除相关目录5、删除数据库相关的用户和组 1、关闭数据库实例 su - oracle sqlplus / as sysdba shutdown immediate2、关闭数据库监听 su - oracle lsnrctl stop3、…...

分享:osgb倾斜数据转cesium-3dtiles 小工具.

背景: 很多知识殊途同归,在三维软件这块,少不了要和各种各样的数据格式打交道.osgb,stl,obj,3dtiles,3ds等等..虽然里面本质核心基本都是几何数据拓扑数据材质纹理数据等等,但是由于其组织方式不同和特殊的应用场景,导致很多模型需要转来转去...相信很多人在这方面都或多或少吃…...

基于单片机的客车载客状况自动检测系统(论文+源码)

1系统整体设计 本课题为客车载客状况自动检测系统&#xff0c;在此以STM32单片机为核心控制器&#xff0c;结合压力传感器、红外传感器、蜂鸣器、语音提示模块、继电器、液晶等构成整个客车载客状况自动检测系统&#xff0c;整个系统架构如图2.1所示&#xff0c;在此通过两个红…...

Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问

在访问网页的时候&#xff0c;因为浏览器自身的安全设置问题&#xff0c; 对于https的网页访问会出现安全隐私的提示&#xff0c; 甚至无法访问对应的网站&#xff0c;尤其是chrome浏览器&#xff0c; 因此本文主要讲解如何设置chrome浏览器的设置&#xff0c;来解决该问题&…...

中国省级产业结构高级化及合理化数据测算(2000-2023年)

一、数据介绍 数据名称&#xff1a;中国省级产业结构高级化、泰尔指数 数据年份&#xff1a;2000-2023年 数据范围&#xff1a;31个省份 数据来源&#xff1a;中国统计年鉴、国家统计局 数据整理&#xff1a;内含原始版本、线性插值版本、ARIMA填补版本 数据说明&#xf…...

云手机 —— 手机矩阵的 “超级外挂

如何打造手机矩阵 打造手机矩阵主要包括以下几个步骤: 1.确定目标与需求:首先&#xff0c;明确打造手机矩阵的目的和需求&#xff0c;是为了进行电商运营、自媒体推广、任务管理还是其他目的。这将决定后续的手机数量、操作系统选择以及应用安装等。 2.选择手机与操作系统:根据…...

Ruby语言的编程范式

Ruby语言的编程范式 在软件开发的世界里&#xff0c;编程语言不仅仅是实现功能的工具&#xff0c;更是一种表达思想和解决问题的方式。Ruby语言凭借其简洁优雅的语法和强大的功能&#xff0c;广受开发者喜爱&#xff0c;并逐步形成了一种独特的编程范式。本文将深入探讨Ruby语…...

【微服务】SpringBoot 整合Redis实现延时任务处理使用详解

目录 一、前言 二、延迟任务的高频使用场景 三、延迟任务常用解决方案 3.1 Quartz 3.2 DelayQueue 3.2.1 Timer + TimerTask 3.2.2 ScheduledExecutorService 3.3 Redis sorted set 3.4 RabbitMQ 四、Redis实现延时队列操作实战 4.1 Redis Sorted Set 概述 4.1.1 Re…...

STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !

一&#xff09;问题&#xff1a;用ULINK2给STM32F103C8T6下载程序&#xff0c;下载方式设置如下&#xff1a; 出现下面两个问题&#xff1a; 1&#xff09;下载问题界面如下&#xff1a; 这个错误的信息大概可以理解为&#xff0c;在0x08000063地址上读取到flash存储为FF&am…...

图像分割综述

1. 简述 图像分割&#xff08;Image Segmentation&#xff09;是计算机视觉领域中的一项基本任务&#xff0c;旨在将图像划分为多个具有语义或视觉意义的区域。这项任务在医学影像分析、自动驾驶、遥感图像处理、视频监控等领域都有着广泛的应用。随着深度学习技术的发展&…...

计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

STM32-笔记38-I2C-oled实验

一、什么是I2C&#xff1f; I2C总线&#xff0c;全称Inter-Integrated Circuit&#xff08;互连集成电路&#xff09;&#xff0c;是一种由Philips&#xff08;现NXP半导体&#xff09;公司在1980年代初开发的同步 串行 半双工通信总线。 二、有了串口通信为什么要使用I2C&…...

Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)

Vue Amazing UI 一个 Vue 3 组件库 使用 TypeScript&#xff0c;都是单文件组件 (SFC)&#xff0c;支持 tree shaking 有点意思 English | 中文 Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库&#xff0c;包含丰富的 UI 组件和常…...

Android NDK开发实战之环境搭建篇(so库,Gemini ai)

文章流程 音视频安卓开发首先涉及到ffmpeg编译打包动态库&#xff0c;先了解动态库之间的cpu架构差异性。然后再搭建可运行的Android 环境。 So库适配 ⽇常开发我们经常会使⽤到第三库&#xff0c;涉及到底层的语⾳&#xff0c;视频等都需要添加so库。⽽so库的体积⼀般来说 ⾮…...

Word中所有的通配符使用方式[Word如何批量删除中文标点符号,英文标点符号,英文字母符号,数字符号,中文汉字符号]

Word中所有的通配符使用方式 概念讲解通配符一览表详细介绍通配符的使用使用通配符搜索简洁通配符链接操作演示链接 概念讲解 Word中的通配符是用在查找和替换中的正则表达式。通配符可以实现高级的查找替换&#xff0c;快速整理和排版文档。常用的通配符包括&#xff1a; “*…...

ElasticSearch内存占用率过高怎么办?

文章目录 1&#xff0c;先用top看看各个进程的内存占用情况2&#xff0c;不能简单的杀死进程&#xff0c;然后再重启。3&#xff0c;查看一下ElasticSearch进程的具体启动情况4&#xff0c;修改Elasticsearch 的Java堆内存 1&#xff0c;先用top看看各个进程的内存占用情况 先…...