嵌入式培训之数据结构学习(三)gdb调试、单向链表练习、顺序表与链表对比
目录
一、gdb调试
(一)一般调试步骤与命令
(二)找段错误(无下断点的地方)
(三)调试命令
二、单向链表练习
1、查找链表的中间结点(用快慢指针)
2、找出链表倒数第k个结点(用快慢指针)
3、链表的逆序
4、链表的插入排序
三、顺序表和链表对比
四、循环链表
一、gdb调试
(一)一般调试步骤与命令
1、gcc -g (调试版本,内含调试信息与源码;eg:gcc -g main.c linklist.c)
2、gdb a.out(调试可执行文件,eg:gdb ./a.out)
3、b fun.c:36 设置断点,运行到这个位置,程序自动暂停
(b :100 默认停在main.c的100行;
b fun.c : 36 停在fun.c的36行
b 函数名 eg: b InserPosLinkList)
4、 r 运行(出现页面要输入则输入)
5、n 执行下一步 步过(如果是函数,直接调用结束)
s 步入自定义函数(系统函数不入)
6、使用p命令,查看变量或指针等数据
(p 变量:显示变量值,eg:p len
p 指针:看地址,eg:p *data)
7、q命令 退出(y)
(二)找段错误(无下断点的地方)
1、gcc -g (加上调试选项-g,eg:gcc main.c linklist.c -g)
2、gdb a.out (调试可执行文件,eg:gdb ./a.out)
3、按 r(run) 直接开始运行
4、重现错误
5、where 找出段错误的位置(出现栈结构信息,从下往上看,找到第一个不是自己写的往后退一个)
eg:#0(第一个不是自己写的,往后退一个)
#1(此处出现段错误)
#2
(三)调试命令
二、单向链表练习
1、查找链表的中间结点(用快慢指针)
(1)算法实现:
LinkNode* FindMidLinkList(LinkList*ll)
// 定义函数,功能是查找链表的中间节点,参数为链表头指针,返回链表节点指针
{
LinkNode* fast = ll->head; // 初始化快指针,指向链表头节点
LinkNode* slow = ll->head; // 初始化慢指针,指向链表头节点
while(fast) // 当快指针不为空时,进行循环
{
fast = fast->next; // 快指针向前移动一个节点
if(NULL == fast) // 检查快指针是否为空(即到达链表末尾)
{
break; // 如果为空,跳出循环
}
slow = slow->next; // 慢指针向前移动一个节点
fast = fast->next; // 快指针再向前移动一个节点
}
return slow; // 循环结束,返回慢指针,此时慢指针指向链表中间节点
}
(2)调试:
2、找出链表倒数第k个结点(用快慢指针)
(1)算法实现:
LinkNode* FindLastKLinkList(LinkList*ll,int k)
// 定义函数,功能是查找链表倒数第k个节点,参数为链表头指针和整数k,返回链表节点指针
{int len = GetSizeLinkList(ll);
if(k < 0 || k > len)
{
return NULL;
}
LinkNode* slow = ll->head; // 初始化慢指针,指向链表头节点
LinkNode* fast = ll->head; // 初始化快指针,指向链表头节点
for(int i = 0 ;i < k ;i++) // 循环k次
{
fast = fast->next; // 快指针向前移动一个节点,共移动k次
}
while(fast) // 当快指针不为空时,进行循环
{
fast =fast->next; // 快指针向前移动一个节点
slow= slow->next; // 慢指针向前移动一个节点
}
return slow; // 循环结束,返回慢指针,此时慢指针指向链表倒数第k个节点
}
(2)调试:
3、链表的逆序
(1)图解
(2)算法实现
int RevertLinkList(LinkList* ll)
{
LinkNode* prev = NULL; // 定义指针prev,用于指向当前节点的前一个节点,初始化为NULL
LinkNode* tmp = ll->head; // 定义指针tmp,指向链表头节点,用于遍历链表
LinkNode* next = tmp->next; // 定义指针next,指向tmp的下一个节点,用于保存tmp后续节点,防止链表断裂
int len = GetSizeLinkList(ll); // 调用GetSizeLinkList函数获取链表长度并存储在len中
if(len<2) // 如果链表长度小于2,即链表为空或只有一个节点
{
return 1; // 无需反转,直接返回1
}
while (1) // 进入无限循环,用于遍历并反转链表
{
tmp->next = prev; // 将当前节点tmp的next指针指向它的前一个节点prev,实现当前节点的反转
prev = tmp; // 将prev指针移动到当前节点tmp的位置,为下一轮循环做准备
tmp = next; // 将tmp指针移动到原本保存的下一个节点next的位置
if (NULL == tmp) break; // 如果tmp指向NULL,说明已经遍历到链表末尾,跳出循环
next = next->next; // 将next指针移动到tmp当前指向节点的下一个节点,为下一轮循环保存后续节点
}
ll->head = prev; // 将链表的头节点更新为反转后链表的头节点(即原链表的尾节点)
return 0; // 成功反转链表,返回0
}
4、链表的插入排序
LinkList* InsertSortLinklist(LinkList* ll)
{
LinkNode* pins = ll->head; // 定义指针pins,指向链表头节点,用于定位插入位置
LinkNode* ptmp = pins->next; // 定义指针ptmp,指向头节点的下一个节点,作为待插入节点
LinkNode* next = ptmp->next; // 定义指针next,指向ptmp的下一个节点,用于保存ptmp后续节点,防止链表断裂
ptmp->next = NULL; // 将待插入节点ptmp的next指针置空,使其暂时脱离原链表
ll->head->next = NULL; // 将原链表头节点的next指针置空,原链表头节点成为新链表的第一个节点,且新链表初始只有这一个节点while(1) // 进入无限循环,用于遍历链表并进行插入排序
{
pins = ll->head; // 每次循环开始,将pins重新指向新链表头节点,从新链表头部开始寻找插入位置
// 当pins后面还有节点,且待插入节点ptmp的年龄值大于pins节点和pins下一个节点的年龄值时
while(pins->next && ptmp->data.age > pins->data.age && ptmp->data.age > pins->next->data.age)
{
pins = pins->next; // 移动pins指针,向后寻找合适的插入位置
}if(pins->data.age > ptmp->data.age) // 如果找到的位置pins节点的年龄值大于待插入节点ptmp的年龄值
{
ptmp->next = ll->head; // 将待插入节点ptmp的next指针指向新链表头节点
ll->head = ptmp; // 更新新链表头节点为ptmp,即将ptmp插入到新链表头部
}
else // 否则(即pins节点的年龄值小于等于ptmp的年龄值)
{
ptmp->next = pins->next; // 将待插入节点ptmp的next指针指向pins的下一个节点
pins->next = ptmp; // 将pins的next指针指向ptmp,即将ptmp插入到pins之后
}
ptmp = next; // 将ptmp指针移动到原本保存的下一个节点next的位置,准备处理下一个待插入节点
if(NULL == ptmp) // 如果ptmp指向NULL,说明已经处理完所有节点
{
break; // 跳出循环
}
next = next->next; // 将next指针移动到ptmp当前指向节点的下一个节点,为下一轮循环保存后续节点
ptmp->next = NULL; // 将待插入节点ptmp的next指针置空,使其暂时脱离原链表
}
return ll; // 返回排序后的链表头指针
}
三、顺序表和链表对比
1、存储方式
顺序表 是一段连续的存储单元
链表 是逻辑结构连续物理结构(在内存中的表现形式)不连续(因为是通过malloc获得的)
2、 时间性能
查找 : 顺序表O(1) //按规则放,找的时候按规则找;支持随机访问
链表 O(n) //只能从第一个往后找
插入和删除:顺序表 O(n) //整体前移与后移
链表 O(1) //一次性改(只需把一个节点连上),与链表数据量无关
3、 空间性能
顺序表 需要预先分配空间,大小固定;只放数据
链表, 不需要预先分配,大小可变,动态分配;数据 + 指针域
四、循环链表
1、 简单的来说,就是将原来单链表中最有一个元素的next指针指向第一个元素或
头结点,链表就成了一个环,头尾相连,就成了循环链表。circultlar linker list.
2、 注意非空表,和空表。多数会加入头结点。
3、 原来结束的条件是 p->next != NULL ------->>>>> p-next != Head
4、练习:判断链表是否有环(用快慢指针)
int IsRingLinkList(LinkList* ll)
// 定义函数判断链表是否有环,参数为链表指针,返回整型(0表示无环,1表示有环)
{
LinkNode* fast = ll->head; // 定义快指针fast,初始指向链表头节点
LinkNode* slow = ll->head; // 定义慢指针slow,初始也指向链表头节点
while (fast) // 当快指针不为空时进入循环(快指针为空时说明已遍历到链表末尾,无环)
{
fast = fast->next; // 快指针先移动一步(每次移动两步的第一步)
if (NULL == fast) // 检查快指针移动后是否为空
{
return 0; // 若为空,说明链表无环,返回0
}
if (slow == fast) // 检查慢指针和快指针是否相遇(相遇则说明有环)
{
return 1; // 若相遇,返回1表示有环
}
fast = fast->next; // 快指针再移动一步(完成每次移动两步)
slow = slow->next; // 慢指针每次移动一步
}
return 0; // 循环结束后仍未相遇,说明链表无环,返回0
}
相关文章:
嵌入式培训之数据结构学习(三)gdb调试、单向链表练习、顺序表与链表对比
目录 一、gdb调试 (一)一般调试步骤与命令 (二)找段错误(无下断点的地方) (三)调试命令 二、单向链表练习 1、查找链表的中间结点(用快慢指针) 2、找出…...
MySQL——九、锁
分类 全局锁表级锁行级锁 全局锁 做全库的逻辑备份 flush tables with read lock; unlock tables;在InnoDB引擎中,我们可以在备份时加上参数–single-transaction参数来完成不加锁的一致性数据备份 mysqldump --single-transaction -uroot -p123456 itcast>…...
精益数据分析(57/126):创业移情阶段的核心要点与实践方法
精益数据分析(57/126):创业移情阶段的核心要点与实践方法 在创业的浩瀚征程中,每一个阶段都承载着独特的使命与挑战。今天,我们继续秉持共同进步的理念,深入研读《精益数据分析》,聚焦创业的首…...
服务器被打了怎么应对
云服务器遭受攻击该如何应对? 在互联网时代,不少使用云服务器的网络工作者常常会面临网络攻击的威胁。若云服务器未配置完善的防火墙,极易引发服务器宕机,甚至被封禁隔离(俗称“陷入黑洞”),进…...
Halcon案例(二):C#联合Halcon回形针以及方向
本案例分3部分 识别效果,分别显示识别前后识别后;代码展示,分别是Halcon源码和Halcon转为C#的代码代码解释(解释在源码中); 原图如下 识别后图像: 其中计算回形针与X轴之间的夹角 Halcon代码: * clip.hdev: Orientation of clips *识别图像中的回形针,并且计算回形针与X轴之间…...
Spyglass:跨时钟域同步(同步单元)
相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 同步单元方案可以用于控制/数据信号跨时钟域同步,该方案使用约束或参数将目标时钟域中单元指定为同步单元,如图1所示。 图1 同步单元方案…...
JAVA异常体系
在 Java 里,异常体系是其错误处理机制的核心内容,它能够帮助开发者有效应对程序运行时出现的各种意外状况。 异常体系的基本架构 它主要包含两个重要分支: Error(错误):这类异常是程序自身无法处理的严重…...
Milvus 视角看主流嵌入式模型(Embeddings)
嵌入是一种机器学习概念,用于将数据映射到高维空间,其中语义相似的数据被紧密排列在一起。嵌入模型通常是 BERT 或其他 Transformer 系列的深度神经网络,它能够有效地用一系列数字(称为向量)来表示文本、图像和其他数据…...
全面解析 Server-Sent Events(SSE)协议:从大模型流式输出到实时通信场景
全面解析 Server-Sent Events(SSE)协议:从大模型流式输出到实时通信场景 一、SSE 协议概述 Server-Sent Events(SSE) 是 HTML5 标准中定义的一种基于 HTTP 的服务器向客户端单向推送实时数据的协议。其核心特性包括&a…...
数据库系统概论|第七章:数据库设计—课程笔记
前言 本章讨论数据库设计的技术和方法,主要讨论基于关系数据库管理系统的关系数据库设计问题,而关于数据库的设计过程中,关于数据模型、关系模型等基本概念在前文中已经有详尽介绍,此处便不再赘述,本文主要围绕概念结…...
Java项目拷打(外卖+点评)
一、点评星球(黑马点评) 1、项目概述 1.1、项目简介 本项目是基于Spring Boot与Redis深度整合的前后端分离的点评平台。系统以Redis为核心技术支撑,重点解决高并发场景下的缓存穿透、击穿、雪崩等问题,涵盖商户展示、优惠券秒杀…...
MCP:开启AI的“万物互联”时代
MCP:开启AI的“万物互联”时代 ——从协议标准到生态革命的技术跃迁 引言:AI的“最后一公里”困境 在2025年的AI技术浪潮中,大模型已从参数竞赛转向应用落地之争。尽管模型能生成流畅的对话、创作诗歌甚至编写代码,但用户逐渐发现…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-D. 扩展插件列表(PostGIS/PostgREST等)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 附录D. PostgreSQL扩展插件速查表一、插件分类速查表二、核心插件详解三、安装与配置指南四、应用场景模板五、版本兼容性说明六、维护与优化建议七、官方资源与工具八、附录…...
Spring Boot拦截器详解:原理、实现与应用场景
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、拦截器概述 拦截器(Interceptor)是Spring MVC框架中用于对请求进行预处理和后处理的组件,主要作用于Controller层。相…...
万字解析:Java字符串
目录 一、 String类 1. String类的初始化 1.1 常用的三种构造String类的方式 1.2 String类如何存储字符串? 2. String类的常用功能方法 2.0 字符串长度的获取 2.1 String对象的比较 2.2 字符/字符串的查找 2.3 字符串的转化 2.4 字符 / 字符串的替换 2.5…...
0514得物、0509滴滴面试总结复盘
目前最欠缺的还是,编码不是很熟,很多都遇到过但是就是写不出来,或者靠背先写一点,然后去加,加的过程没考虑逻辑是不是对的,用滴滴面试官的一句话,就是多刷多练多编码! 第二块就是项目…...
记录算法笔记(20025.5.14)对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目…...
AI大模型从0到1记录学习 linux day23
第 1 章 MySQL概述 1.1 基本概念 1.1.1 数据库是什么? 数据库(DB:Database):存储数据的地方。 1.1.2 为什么要用数据库? 应用程序产生的数据是在内存中的,如果程序退出或者是断电了,…...
用git下载vcpkg时出现Connection was reset时的处理
用git安装vcpkg时出现Connect was rest(如上图)。多谢这位网友的博文解决了问题: 通过:http.sslVerify false全局来设置,执行以下命令: git config --global http.sslVerify "false" 原文链接:…...
【数据库复习】SQL语言
一、SQL通用语法与分类 (一)SQL通用语法 SQL语句的格式通常较为规范,以关键字开头,如CREATE、SELECT、INSERT等,后跟具体的表名、字段名和条件等。在MySQL中,还可以使用help命令获取帮助信息,…...
二叉树——层序遍历
目录 实现层序遍历 判断是否为完全二叉树 实现层序遍历 除了先序遍历,中序遍历,后序遍历外,还可以对二叉树进行层序遍历。设二叉树的结点所在层数为1,层序遍历就是从所在二叉树的根结点出发,首先访问第一层的树根结点…...
Seata源码—2.seata-samples项目介绍
大纲 1.seata-samples的配置文件和启动类 2.seata-samples业务服务启动时的核心工作 3.seata-samples库存服务的连接池配置 4.Seata对数据库连接池代理配置的分析 5.Dubbo RPC通信过程中传递全局事务XID 6.Seata跟Dubbo整合的Filter(基于SPI机制) 7.seata-samples的AT事…...
企业数字化转型背景下的企业知识管理挑战与经验杂谈
一、引言 在数字化转型的浪潮下,企业知识管理正面临前所未有的挑战。随着数据量的急剧增长,企业内部积累的信息呈现出碎片化、分散化的趋势,传统的知识管理体系已难以有效应对这一变革。首先,信息碎片化问题日益严重,…...
第二章:磁盘管理与文件管理
一、磁盘管理 1.windows和Linux磁盘管理的区别 windows资源管理方式 系统一般安装在C盘 C盘下的"Windows"目录是操作系统的核心 C盘下的"Program Files"目录下安装软件 C盘下的"用户"目录是所有的用户,包括超级管理员也在其中 …...
Java版OA管理系统源码 手机版OA系统源码
Java版OA管理系统源码 手机版OA系统源码 一:OA系统的主要优势 1. 提升效率 减少纸质流程和重复性工作,自动化处理常规事务,缩短响应时间。 2. 降低成本 节省纸张、打印、通讯及人力成本,优化资源分配。 3. 规范管理 固化企…...
springboot踩坑记录
之前运行好端端的项目,今天下午打开只是添加了一个文件之后 再运行都报Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class Action: Conside…...
SpringAI
机器学习: 定义:人工智能的子领域,通过数据驱动的方法让计算机学习规律,进行预测或决策。 核心方法: 监督学习(如线性回归、SVM)。 无监督学习(如聚类、降维)。 强化学…...
acwing 1488. 最短距离 超级源点 最短路 堆优化Dijkstra
经验总结 邻接表 节点1连接到节点2,权重为3。 节点1连接到节点3,权重为5。 节点2连接到节点4,权重为2。 g[1] {{2, 3}, {3, 5}} g[2] {{1, 3}, {4, 2}} g[3] {{1, 5}} g[4] {{2, 2}} vector<vector<PII>> g;题目背景 有 N…...
2002-2024年地级市新质生产力词频统计数据(46个关键词词频)
2002-2024年地级市新质生产力词频统计数据(46个关键词词频) 1、时间:2002-2024年 2、来源:ZF工作报告 3、指标:行政区划代码、年份、地区、所属省份、文本总长度、仅中英文-文本总长度、文本总词频-全模式、文本总词…...
院校机试刷题第二天:1479 01字符串、1701非素数个数
一、1479 01字符串 1.题目描述 2.解题思路 方法一:暴力法 模拟过程,列出几个数据来a[1]1, a[2]2, a[3]3, a[4]5以此类推,这就是斐波那契数列,每一项都等于前两项之和,确定好a[1], a[2]即可。 方法二:动…...
2011-2019年各省总抚养比数据
2011-2019年各省总抚养比数据 1、时间:2011-2019年 2、来源:国家统计局 3、指标:行政区划代码、地区、年份、总抚养比(人口抽样调查)(%) 4、范围:31省 5、指标解释:总抚养比也称总负担系数。指人口总体中非劳动年…...
3337|3335. 字符串转换后的长度 I(||)
1.字符串转换后的长度 I 1.1题目 3335. 字符串转换后的长度 I - 力扣(LeetCode) 1.2解析 递推法解析 思路框架 我们可以通过定义状态变量来追踪每次转换后各字符的数量变化。具体地,定义状态函数 f(i,c) 表示经过 i 次转换后࿰…...
【电路笔记 通信】8B/10B编码 高速数据传输的串行数据编码技术 论文第三部分 The 8B/10B coding map
0810逻辑总览 The 8B/10B coding map 图 1 展示了一个通信适配器接口,它由八条数据线 A、B、C、D、E、F、G、H(注意:使用大写字母表示)、一条控制线 K,以及一条以字节速率运行的时钟线 BYTECLK 组成。控制线 K 用于指…...
智能化双语LaTeX系统,分阶段系统性开发技术实现路径:目标是实现语义级编译和认知增强写作,推动跨文明知识表达
智能化双语LaTeX系统,分阶段系统性开发技术实现路径(D认为W可辅助各环节开发): 第一阶段:双语LaTeX引擎升级 1. 核心架构设计 Unicode深度支持 开发新一代XeLaTeX/LuaLaTeX内核 原生支持UTF-8编码(如汉…...
【RabbitMQ】路由模式和通配符模式的具体实现
文章目录 路由模式创建队列和交换机生产者代码创建交换机声明队列绑定交换机和队列发送消息完整代码 消费者代码运行程序启动生产者启动消费者 通配符模式创建队列和交换机生产者代码创建交换机声明队列绑定交换机和队列发送消息完整代码 消费者代码运行程序启动生产者启动消费…...
【测试开发知识储备】之Jacoco(Java Code Coverage)
文章目录 Jacoco是什么Jacoco的主要功能(一)多样化覆盖率指标分析(二) 丰富的报告生成(三)实时数据收集 Jacoco的工作原理(一)字节码增强(二)测试执行与数据收…...
大二java第一面小厂(挂)
第一场: mybatis怎么防止数据转义。 Hutool用的那些你常用的方法。 springboot的常用注解。 redis的多级缓存。 websocket怎么实现的多人协作编辑功能。 怎么实现的分库分表。 mysql里面的各种操作,比如说分表怎么分,分页查询怎么用。 mybat…...
Postman接口测试
现在企业级测试分为三层测试 UI层:即与用户交互的层面 Service层:比如前后端分离的系统,测试数据的传输 Unit层:单元测试 接口 接口的概念很抽象,比如我们经常使用的USB接口,Lighting接口等传输电量数据…...
试除法判断素数优化【C语言】
代码引用 int is_prime(int num) {if (num < 1) return 0;if (num 2 || num 3) return 1;if (num % 2 0 || num % 3 0) return 0;for (int i 5; i * i < num; i 6) {if (num % i 0 || num % (i 2) 0) return 0;}return 1; } 一、数学原理 所有大于3的素数都可…...
全新开发-iVX图形化编程VS完整IDE
本文针对传统软件开发的效率与可控性矛盾,系统阐释 iVX"图形化编程 全栈 IDE" 的复合架构如何突破行业瓶颈。通过 "可视化建模 - 标准代码生成 - 独立运行" 的技术闭环,iVX 实现开发效率提升 60% 与源码完全可控的双重目标。研究揭…...
前端表格滑动滚动条太费事,做个浮动滑动插件
比如下面的表格,因为滚动条样式设计得很窄,所以用鼠标滑动起来很费劲 <template><el-table:data"tableData"style"width: 600px"height"250"><el-table-columnfixedprop"date"label"日期&…...
基于自校准分数的扩散模型在并行磁共振成像中联合进行线圈灵敏度校正和运动校正|文献速递-深度学习医疗AI最新文献
Title 题目 Joint coil sensitivity and motion correction in parallel MRI with aself-calibrating score-based diffusion model 基于自校准分数的扩散模型在并行磁共振成像中联合进行线圈灵敏度校正和运动校正 01 文献速递介绍 磁共振成像(MRI)…...
【CUDA】Sgemm单精度矩阵乘法(上)
目录 前言1. 简述2. 框架搭建和CPU串行实现3. baseline算法:global memory4. 优化技巧1:shared memory5. 优化技巧2:shared memory sliding window6. 优化技巧3:增加每个线程的工作量7. 优化技巧4:使用float4提高读取…...
Linux proc文件系统 内存影射
文章目录 常见的内存分配函数/proc/pid/ 目录解析 用户进程的内存空间分配算法mmap 分配大内存可能不在堆中换为 malloc 现象相同 常见的内存分配函数 malloc / calloc / realloc(来自 C 标准库) void *malloc(size_t size):分配 size 字节…...
服务器时间发生跳变导致hghac中对应主机状态频繁切换为crash或stop
文章目录 环境症状问题原因解决方案相关文档报错编码 环境 系统平台:N/A 版本:N/A 症状 集群状态: [rootbthbj-hgywsjkjq-ip28-cen76 ~]# hghactl list Cluster: highgo-ee-cluster —---------------------—---------- | Member | Ho…...
“智”造升级:金众诚如何赋能重型机械企业高效项目管理?
据悉,由中国重型机械工业协会主办的2025中国(郑州)重型机械装备展览会(以下简称:重型机械装备展),将于2025年10月15-17日在河南省郑州市中原国际会展中心隆重举办。 作为中国重型机械行业唯一的…...
反向操作:如何用AI检测工具优化自己的论文“人味”?
大家好,这里是论文写手的一线自救指南😤 在AIGC横行的今天,谁还没偷偷用过AI写几段论文内容?但问题来了:学校越来越会“识AI”了! 有的学校甚至不看重复率,只盯AIGC率报告,一句“AI…...
前端面试宝典---js垃圾回收机制
什么是垃圾回收 垃圾回收是指一种自动内存管理机制,当声明一个变量时,会在内存中开辟一块内存空间用于存放这个变量。当这个变量被使用过后,可能再也不需要它了,此时垃圾回收器会自动检测并回收这些不再使用的内存空间。垃圾回收…...
【docker】--容器管理
文章目录 容器重启--restart 参数选项及作用**对比 always 和 unless-stopped****如何查看容器的重启策略?** 容器重启 –restart 参数选项及作用 重启策略 no:不重启(默认)。on-failure:失败时重启(可限…...
如何下载和安装 Ghost Spectre Windows 11 24H2 PRO
如何下载和安装 Ghost Spectre Windows 11 24H2 PRO 我们都希望拥有一台运行速度飞快的电脑系统,但对于那些使用普通硬件的用户来说,这并不总是可能的。所以,如果你觉得你的 Windows 11 电脑运行缓慢,你并不孤单。许多用户,包括 Reddit 和 YouTube 上的技术爱好者,都在放…...