【C语言】初阶数据结构相关习题(一)
🎆个人主页:夜晚中的人海
今日语录:人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。——奥斯特洛夫斯基
文章目录
- ⭐一、判定是否互为字符重排
- 🎉二、 回文排列
- 🚀三、字符串压缩
- 🎡四、递归乘法
- 🏠五、取近似值
- 🏝️六、数列
- 🚆七、搜索插入位置
- 🚘八、搜索旋转排序数组
- 🏖️九、二进制链表转整数
⭐一、判定是否互为字符重排
题目描述:判定是否互为字符重排
解题思路:
1.首先判断两个字符串长度是否相等,若不相等,那么他们不可能彼此排列,直接返回false。
2.若字符串长度相等,我们就可以使用qsort函数对两个字符串进行排序来判断它们是否排列。
qsort 是标准库中的快速排序函数,它需要以下参数:
• 要排序的数组(s1 和 s2)。
• 数组的长度(len1 和 len2)。
• 每个元素的大小(sizeof(char))。
• 比较函数(cmp)。
3.排序完成后,如果两个字符串是彼此的排列,那么它们排序后的结果应该完全相同,因此我们就可以使用strncmp函数来比较排序后的字符串。
代码实现:
int cmp(const void* a,const void* b)
{return *(char*)a - *(char*)b;
}bool CheckPermutation(char* s1, char* s2) {int len1 = strlen(s1);int len2 = strlen(s2);if(len1 != len2){return false;}qsort(s1,len1,sizeof(char),cmp);qsort(s2,len2,sizeof(char),cmp);if(strncmp(s1,s2,len1) == 0){return true;}return false;
}
🎉二、 回文排列
题目描述:回文排列
解题思路:
1.我们首先要理解回文字符串的特性,一个字符串可以通过重新排列形成回文字符串的条件是:如果字符串长度为偶数,那么每个字符必须出现偶数次;如果字符串长度为奇数,那么最多只能有一个字符出现奇数次,其余字符必须出现偶数次。
2.我们使用一个大小为 128 的数组 a 来统计每个字符的出现次数(假设字符集为 ASCII,其范围为 0-127)。
3.遍历字符串 s,将每个字符的 ASCII 码值对应的数组位置加一。
4.遍历数组 a,统计出现次数为奇数的字符个数,如果某个字符的出现次数是奇数,则count 加一。
5.如果 count 大于等于 2,说明有多个字符的出现次数为奇数,这种情况下无法形成回文字符串,直接返回 false。
6.遍历完数组后,如果count的值小于2,说明最多只有一个字符的出现次数为奇数,这种情况下可以构成回文字符串,则返回 true。
代码实现:
bool canPermutePalindrome(char* s) {int len = strlen(s);int a[128] = {0};int count = 0;for(int i = 0;i < len;i++){//将字符所对应的ASCII码值位置++a[s[i]]++;}for(int i = 0;i < 128 ;i++){if(a[i] % 2 == 1){count++;}if(count >= 2){return false;}}return true;
}
🚀三、字符串压缩
题目描述:字符串压缩
解题思路:
1.首先判断特殊情况,如果字符串的长度小于等于2,则压缩后的字符串长度并不会小于原始字符串,因此直接返回源字符串。
2.分配一个足够大的内存空间用于存储压缩后的字符串。初始化计数器count 为 1,用于记录当前字符的连续出现次数;初始化指针 p 为 0,用于记录压缩后字符串的当前位置。
3.使用一个循环从第 1 个字符开始遍历字符串,直到字符串末尾。如果当前字符与前一个字符相同,则计数器 count 加一;如果当前字符与前一个字符不同,则将前一个字符及其出现次数写入压缩后的字符串。(将字符写入 ret[p],并将指针 p 向后移动一位;使用sprintf函数将计数器 count 转换为字符串并写入 ret[p],同时更新指针 p 的位置。重置计数器 count 为 1,开始统计下一个字符的连续出现次数。)
4.遍历完成后,比较压缩后的字符串长度与原始字符串长度,如果压缩后的字符串长度大于原始字符串长度,则返回原始字符串,否则返回压缩后的字符串。
代码实现:
char* compressString(char* S) {int len = strlen(S);char* ret = (char*)malloc(sizeof(char)*len*2);int count = 1;int p = 0;int n = 0;if(len <= 2){return S;}for(int i = 1;i < len + 1;i++){if(S[i] == S[i - 1]){count++;}else{ret[p] = S[i - 1];p++;n = sprintf(&ret[p],"%d",count);p = p + n;count = 1;}}if(strlen(ret) > len){return S;}else{return ret;}
}
🎡四、递归乘法
题目描述:递归乘法
解题思路:
1.我们可以理解乘法其实就是重复的加法。如:A×B 可以表示为将 A 加上自身 B 次。
2.如果B>1时,则该问题就可以被分解为A×B=A+(A×(B−1));当 B=1 时,乘积直接等于 A,因为任何数乘以 1 都等于它本身。
3.每次递归调用都会返回一个部分结果,最终将所有部分结果累加起来,得到最终的乘积。
代码实现:
int multiply(int A, int B) {int ret = 0;if(B > 1){ret += multiply(A,B-1) + A;}else{ret = A;}return ret;
}
🏠五、取近似值
题目描述:取近似值
解题思路:
1.我们要理解当浮点数强制类型转化为整型时,它是只向上调整的,并不会进行四舍五入的操作。
2.因此我们可以先将浮点数加上0.5,然后在进行强制类型转换。如果小数部分大于或等于 0.5,则加上 0.5 后会触发向上取整;若小数部分小于0.5,则加上 0.5 后不会触发向上取整。(这一方法只适用于浮点数为正数时)
代码实现:
#include <stdio.h>int main() {int ret = 0;float n;scanf("%f",&n);printf("%d\n",(int)(n + 0.5));
}
🏝️六、数列
题目描述:数列
解题思路:
1.定义一个足够大的数组 arr,用于存储生成的伪随机数序列,将数组的前两个元素初始化为 1 和 2。
2.使用循环从第 3 个元素开始,根据递推公式生成后续的序列值,每个元素的值由前两个元素计算得出,并对 32767 取模,以确保值不会超出 long 类型的范围。
3.由于数组索引从 0 开始,而用户输入的索引从 1 开始,因此需要将用户输入的索引值减 1,以获取对应的数组元素。
代码实现:
#include <stdio.h>int main() {long arr[1000000] = {1,2};for(int i= 2;i<1000000;i++){arr[i] = (arr[i-1] * 2 + arr[i-2]) % 32767;}long n;scanf("%ld",&n);for(int i = 0;i<n;i++){int num;scanf("%d",&num);printf("%ld\n",arr[num-1]);}return 0;
}
🚆七、搜索插入位置
题目描述:搜索插入位置
解题思路:
1.定义两个指针 low 和 high,分别指向数组的起始位置和结束位置。定义一个变量 tmp,用于存储每次二分查找的中间索引。
2.使用 while 循环进行二分查找,计算中间索引 tmp。比较目标值 target 与中间值 nums[tmp]
3.如果循环结束仍未找到目标值,说明目标值不存在于数组中。如果目标值小于所有数组元素,low 会保持为0;如果目标值大于所有数组元素,low 会逐渐增加到 numsSize;如果目标值位于数组的某个位置之间,low 会停在目标值应该插入的位置。
代码实现:
int searchInsert(int* nums, int numsSize, int target) {int low = 0;int high = numsSize - 1;int tmp = 0;while(low <= high){tmp = (low + high)/2;if(nums[tmp] == target){return tmp;}else if(nums[tmp] >target){high = tmp - 1;}else{low = tmp + 1;}}return low;
}
🚘八、搜索旋转排序数组
题目描述:搜索旋转排序数组
解题思路:
1.首先要找到旋转点,使用二分查找的方法。如果 nums[0] > nums[numsSize - 1],说明数组确实被旋转了。
2.每次比较 nums[mid] 和 nums[left],如果 nums[mid] > nums[left],说明 mid 在前半部分的升序子数组中,旋转点在右半部分。否则,旋转点在左半部分。最终,left 和 right 会收敛到旋转点的位置。
3.确定查找范围。找到旋转点后,根据目标值 target 的大小,确定在哪个子数组中进行查找。如果 target 在前半部分的范围内,则在前半部分进行查找;否则,在后半部分进行查找。
4.使用标准的二分查找算法在选定的子数组中查找目标值。如果循环结束仍未找到目标值,则返回 -1。
代码实现:
int search(int* nums, int numsSize, int target) {int left = 0,right = numsSize - 1;int mid = numsSize - 1;while(nums[0] > nums[numsSize - 1] && left < right){mid = (left + right) / 2;if(nums[mid] >nums[left]){left = mid;}else{right = mid;}}//前半部分查找if(nums[0] <= target){left = 0,right = mid;}//后半部分查找else{left = mid + 1,right = numsSize - 1;}while(left <= right){mid = (left + right) / 2;if(nums[mid] == target){return mid;}else if(nums[mid] < target){left = mid + 1;}else{right = mid - 1;}}return -1;
}
🏖️九、二进制链表转整数
题目描述:二进制链表转整数
解题思路:
1.使用一个指针 pcur 遍历链表,统计链表的节点个数。
2.再次从头节点开始遍历链表,计算二进制数的十进制值。
3.将每个节点的值乘以对应的权重 2 的(count−1)次方 ,权重从最高位开始计算,因此每次遍历时 count 减 1。将每个节点的值累加到结果 ret 中。
4.遍历完成后返回目标值ret即可。
代码实现:
typedef struct ListNode ListNode;
int getDecimalValue(struct ListNode* head) {ListNode* pcur = head;int count = 0;int ret = 0;//记录链表的结点个数while(pcur){count++;pcur = pcur->next;}pcur = head;//再次从头开始遍历链表,计算结果while(pcur){ ret += (pcur->val) * pow(2,count - 1);count--;pcur = pcur->next;}return ret;
}
今天的分享就到这里啦,如果感到不错,希望能给博主一键三连,感谢大家的支持!希望这篇文章可以帮到大家,我们下期再见!
相关文章:
【C语言】初阶数据结构相关习题(一)
🎆个人主页:夜晚中的人海 今日语录:人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。——奥斯特洛夫斯基 文章目录 ⭐一、判定是否互为字符重排🎉二、 回文排列🚀三、字符串压缩&am…...
MySQL从入门到精通(一):MySQL介绍及数据库相关概念
目录 一、MySQL 介绍 二、数据库相关概念 (一)数据库基础知识 (二)主流的关系型数据库管理系统 三、关系型数据库与非关系型数据库 (一)定义 (二)数据模型对比 (…...
宁德时代区块链+数字孪生专利解析:去中心化身份认证重构产业安全底座
引言:当动力电池巨头瞄准数字孪生安全 2025年5月6日,金融界披露宁德时代未来能源(上海)研究院与母公司宁德时代新能源科技股份有限公司联合申请的一项关键专利——“身份验证方法、系统、电子设备及存储介质”。这项技术将区块链…...
Kotlin数据类在Android开发中的应用
在 Android 开发中,Kotlin 的数据类(Data Class)因其简洁性和自动生成的功能特性,成为了提升开发效率的利器。以下是我总结的 7 大核心妙用场景,配合代码示例助您快速掌握: 1️⃣ JSON 解析利器 → 网络请求模型 与 Retrofit/Moshi 完美配合,自动生成 equals()/hashCod…...
程序员学商务英语之Shipment Claim 运输和索赔
Dia-3: Claim 1 索赔 1. He claimed that he would quit smoking. 他宣布他将要禁烟。 2. BYD is inferior to Tesla. 差 be worse than… 比亚迪比特斯拉差。 Tesla is superior to BYD. 特斯拉比比亚迪好。 be better than… 3. The survey report reveals/s…...
Kotlin密封类优化Android状态管理
Kotlin 的密封类(Sealed Class)确实是 Android 开发中管理复杂 UI 状态的利器。它通过类型安全的层次结构,让状态管理代码更加清晰简洁。让我们从实际开发场景出发,深入探讨其应用: 一、密封类核心优势 受限的类继承…...
基于图像处理的道路监控与路面障碍检测系统设计与实现 (源码+定制+开发) 图像处理 计算机视觉 道路监控系统 视频帧分析 道路安全监控 城市道路管理
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
依赖注入详解与案例(前端篇)
依赖注入详解与案例(前端篇) 一、依赖注入核心概念与前端价值 依赖注入(Dependency Injection, DI) 是一种通过外部容器管理组件/类间依赖关系的设计模式,其核心是控制反转(Inversion of Control, IoC&…...
Spark 的 Shuffle 机制:原理与源码详解
Apache Spark 是一个分布式数据处理框架,专为大规模数据分析设计。其核心操作之一是 Shuffle,这是一个关键但复杂的机制,用于在某些操作期间在集群中重新分配数据。理解 Shuffle 需要深入探讨其目的、机制和实现,既包括概念层面&a…...
IdeaVim配置指南
一、什么是 IdeaVim? IdeaVim 是 JetBrains 系列 IDE(如 IntelliJ IDEA, WebStorm, PyCharm 等)中的一个插件,让你在 IDE 里使用 Vim 的按键习惯,大大提升效率。 安装方法: 在 IDE 中打开 设置(Settings) →…...
[监控看板]Grafana+Prometheus+Exporter监控疑难排查
采用GrafanaPrometheusExporter监控MySQL时发现经常数据不即时同步,本示例也是本地搭建采用。 Prometheus面板 1,Detected a time difference of 11h 47m 22.337s between your browser and the server. You may see unexpected time-shifted query res…...
P56-P60 统一委托,关联游戏UI,UI动画,延迟血条
这一部分首先把复杂的每个属性委托全部换成了简洁可复用的委托,之后重新修改了UI蓝图,然后在新增了一个与之前表格关联的动画与血条延迟下降的蓝图 OverlayAuraWidgetController.h // Fill out your copyright notice in the Description page of Project Settings. #pragma …...
智能修复大模型生成的 JSON 字符串:Python 实现与优化
在使用大语言模型(LLM)生成 JSON 格式数据时,常因模型输出不完整、语法错误或格式不规范导致 JSON 解析失败。本文介绍如何通过 json_repair 库实现对 LLM 生成 JSON 字符串的自动修复,并改进原始提取函数以提升容错能力。 一、LLM 生成 JSON 的常见问题 LLM 输出的 JSON …...
【PPT制作利器】DeepSeek + Kimi生成一个初始的PPT文件
如何基于DeepSeek Kimi进行PPT制作 步骤: Step1:基于DeepSeek生成文本,提问 Step2基于生成的文本,用Kimi中PPT助手一键生成PPT 进行PPT渲染-自动渲染 可选择更改模版 生成PPT在桌面 介绍的比较详细,就是这个PPT模版…...
华为设备端口隔离
端口隔离的理论与配置指南 一、端口隔离的理论 基本概念 端口隔离(Port Isolation)是一种在交换机上实现的安全功能,用于限制同一VLAN内指定端口间的二层通信。被隔离的端口之间无法直接通信,但可通过上行端口访问公共资源&#…...
YOLO12改进-C3K2模块改进-引入离散余弦变换DCT 减少噪声提取图像的细节、边缘和纹理等微观特征
离散余弦变换(Discrete Cosine Transform, DCT)由 Nasir Ahmed 于 1974 年提出,最初是为了优化数据压缩。其核心思想是将信号从空间域转换为频率域,从而实现冗余信息的压缩。DCT 在图像和视频处理领域应用广泛,例如 JP…...
基于大模型的自然临产阴道分娩全流程预测与方案研究报告
目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 国内外研究现状 二、大模型技术原理与应用概述 2.1 大模型基本原理 2.2 在医疗领域的应用现状 2.3 用于分娩预测的优势 三、术前预测与准备方案 3.1 产妇身体状况评估指标 3.2 大模型预测流程与方法 3.3 基于预…...
用 Tailwind CSS 优化你的 Vue 3 项目! ! !
Vue 3 的响应式魅力 TailwindCSS 的原子级美学 前端开发的舒适巅峰! 在现代前端开发中,组件驱动 原子化 CSS 正在成为新的标准。如果你已经在使用 Vue 3,那不妨试试 Tailwind CSS —— 一个强大的原子化 CSS 框架,它能让你几乎…...
PostgreSQL数据库的array类型
PostgreSQL数据库相比其它数据库,有很多独有的字段类型。 比如array类型,以下表的pay_by_quarter与schedule两个字段便是array类型,即数组类型。 CREATE TABLE sal_emp (name text,pay_by_quarter integer[],schedule t…...
融智学视角集大成范式革命:文理工三类AI与网络大数据的赋能
融智学视角下的“集大成”范式革命:AI与大数据的终极赋能 一、化繁为简的工具革命:AI与大数据的三重解构 信息压缩的数学本质 Kolmogorov复杂度极限突破: K_AI(x)min_p∈P_NN ℓ(p)λ⋅dist(U(p),x) (神经网络程序p的描述长度语…...
【2025】Visio 2024安装教程保姆级一键安装教程(附安装包)
前言 大家好!最近很多朋友在问我关于Visio 2024的安装问题,尤其是对于那些需要制作专业流程图和组织结构图的小伙伴来说,这款软件简直是必不可少的办公神器!今天就给大家带来这篇超详细保姆级的Visio 2024安装教程,不…...
C++【继承】
继承 1.继承1.1 继承的概念1.2继承的定义1.2.1定义格式1.2.2继承基类成员访问方式的变化 1.3继承模板 2.基类和派生类之间的转换 1.继承 1.1 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上…...
理解字、半字与字节 | 从 CPU 架构到编程实践的数据类型解析
注:本文为 “字、半字、字节” 相关文章合辑。 略作重排,未全校。 如有内容异常,请看原文。 理解计算机体系结构中的字、半字与字节 在计算机科学中,理解“字 (Word)”、“半字 (Half-Word)”和“字节 (Byte)”等基本数据单元的…...
VMware搭建ubuntu保姆级教程
目录 VMware Ubuntu 虚拟机配置指南 创建虚拟机 下载 Ubuntu ISO 新建虚拟机 网络配置(双网卡模式) 共享文件夹设置 SSH 远程访问配置 VMware Ubuntu 虚拟机配置指南 创建虚拟机 下载 Ubuntu ISO 【可添加我获取】 官网:Get Ubunt…...
内容社区系统开发文档
1 系统分析 1.1 项目背景 1.2 需求分析 2 系统设计 2.1 系统功能设计 2.2 数据库设计 2.2.1 数据库需求分析 2.2.2 数据库概念结构设计 2.2.3 数据库逻辑结构设计 2.2.4 数据库物理结构设计 2.2.5 数据库视图设计 2.2.6 函数设计 2.2.7 存储过程设计 2.2.8 触发器…...
Ubuntu开放端口
在 Ubuntu 中,我们可以使用 ufw (Uncomplicated Firewall) 来管理防火墙。以下是打开 80 和 8090 端口的步骤: 首先检查防火墙状态 sudo ufw status 如果防火墙没有启用,先启用它: sudo ufw enable 允许 80 端口(…...
PyTorch 与 TensorFlow 中基于自定义层的 DNN 实现对比
深度学习双雄对决:PyTorch vs TensorFlow 自定义层大比拼 目录 深度学习双雄对决:PyTorch vs TensorFlow 自定义层大比拼一、TensorFlow 实现 DNN1. 核心逻辑 二、PyTorch 实现自定义层1. 核心逻辑 三、关键差异对比四、总结 一、TensorFlow 实现 DNN 1…...
质量员考试案例题有哪些常见考点?
质量员考试案例题常见考点如下: 施工质量控制 施工工艺与工序:如混凝土浇筑时的振捣时间、方法,若振捣不充分会导致混凝土出现蜂窝、麻面等质量问题。 施工环境:例如在高温天气下进行砌筑作业,未对砌块进行适当处理或…...
Axure疑难杂症:深度理解与认识“事件”“动作”(玩转交互)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:深度理解与认识“事件”“动作” 主要内容:事件、动作定义、本质、辩证关系、执行顺序 应用场景:原型交互 …...
【AI知识库云研发部署】RAGFlow + DeepSeek
gpu 安装screen:yum install screen 配置ollama: 下载官方安装脚本并执行: curl -fsSL https://ollama.com/install.sh | sh 通过screen后台运行ollama:screen -S ollama 在screen会话中启动服务: export OLLA…...
HTML07:表格标签
表格 基本结构 单元格行列跨行跨列 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格学习</title><style>td {text-align: center;vertical-align: middle;}</style> </he…...
【专家库】Kuntal Chowdhury
昆塔尔乔杜里 Kuntal Chowdhury 是 NVIDIA 的 6G 开发者关系经理和技术布道师。他致力于推动与 NVIDIA 平台和工具的开发者和早期采用者生态系统的联系,以促进 6G 研究社区的蓬勃发展。在此之前,他是 BlueFusion, Inc. 的创始人,这是一家创新…...
IAA-Net:一种实孔径扫描雷达迭代自适应角超分辨成像方法——论文阅读
IAA-Net:一种实孔径扫描雷达迭代自适应角超分辨成像方法 1. 论文的研究目标与实际意义1.1 研究目标1.2 实际问题与产业意义2. 论文的创新方法、公式与优势2.1 方法框架与核心步骤2.2 核心公式与推导2.2.1 回波模型与目标函数2.2.2 正则化加权矩阵设计2.2.3 迭代更新公式2.2.4 …...
[论文阅读]MCP Guardian: A Security-First Layer for Safeguarding MCP-Based AI System
MCP Guardian: A Security-First Layer for Safeguarding MCP-Based AI System http://arxiv.org/abs/2504.12757 推出了 MCP Guardian,这是一个框架,通过身份验证、速率限制、日志记录、跟踪和 Web 应用程序防火墙 (WAF) 扫描来…...
提示词工程:通向AGI时代的人机交互艺术
引言:从基础到精通的提示词学习之旅 欢迎来到 "AGI时代核心技能" 系列课程的第二模块——提示词工程。在这个模块中,我们将系统性地探索如何通过精心设计的提示词,释放大型语言模型的全部潜力,实现高效、精…...
地级市-机器人、人工智能等未来产业水平(2009-2023年)-社科数据
地级市-机器人、人工智能等未来产业水平(2009-2023年)-社科数据https://download.csdn.net/download/paofuluolijiang/90623814 https://download.csdn.net/download/paofuluolijiang/90623814 此数据集统计了2009-2023年全国地级市在机器人、人工智能等…...
神经网络中之多类别分类:从基础到高级应用
神经网络中之多类别分类:从基础到高级应用 摘要 在机器学习领域,多类别分类是解决复杂问题的关键技术之一。本文深入探讨了神经网络在多类别分类中的应用,从基础的二元分类扩展到一对多和一对一分类方法。我们详细介绍了 softmax 函数的原理…...
破解工业3D可视化困局,HOOPS Visualize助力高效跨平台协作与交互!
一、当前3D可视化面临的痛点 (1)性能瓶颈 现有的许多3D可视化工具在处理大型复杂模型时往往力不从心。例如在航空航天、汽车制造等高端制造业,动辄涉及数以亿计的三角面片和海量的纹理细节。这些超大规模的模型在渲染时常常出现卡顿、延迟&…...
感知器准则感知器神经元模型——等价
不同的东西,很多刊物有误。但两者等价。 感知器神经元模型的误差反馈学习 y y y:期望值 y ^ \hat{y} y^:实际输出值 权重更新公式为: w i ← w i η ( y − y ^ ) x i w_i \leftarrow w_i \eta(y - \hat{y})x_i wi←wi…...
Qt学习Day0:Qt简介
0. 关于Qt Qt是C的实践课,之前在C中学习的语法可以有具体的应用场景。Qt的代码量很大,不要死记硬背,学会查询文档的能力更加重要。 建议提升一下相关单词的储备量: 1. Qt是什么? Qt是一个基于C语言的图形用户界面&a…...
JAVA设计模式——(十二)原型模式(Prototype Pattern)
JAVA设计模式——(十二)原型模式(Prototype Pattern) 介绍理解实现Email类测试 应用 介绍 用原型实例指定创建对象的种类,并且通过复制原型已有的对象用于创建新的对象。 理解 原型实例便是我们需要复制的类的实例&…...
C++命名空间
什么是命名空间 命名空间是一种用来避免命名冲突的机制,它可以将一段代码的名称隔离开,使其与其他代码的名称不冲突 简单来说,就是编译器检测到相同的名称的函数,变量,或者其他的相同名称的东西,也许会有疑问,怎么能出现相同的名称的变量呢.这就是C引入的…...
Hello Robot 推出Stretch 3移动操作机器人 提升开源与可用性
Stretch 3机器人是Hello Robot推出的新一代移动操作机器人,专注于提升开源开发与实际应用能力。它结合了先进的设计理念和工程技术,旨在为家庭任务和辅助技术提供智能化解决方案。通过优化硬件性能和软件兼容性,这款机器人不仅增强了灵活性&a…...
[Linux_69] 数据链路层 | Mac帧格式 | 局域网转发 | MTU MSS
目录 0.引入 1.以太网帧格式 2.重谈局域网转发的原理(基于协议) 小结 3.认识MTU 3.1MTU对IP协议的影响 3.2MTU对UDP协议的影响 3.3MTU对于TCP协议的影响 0.引入 在去年的这篇文章中,我们有对网络进行过一个概述[Linux#47][网络] 网络协议 | TCP/IP模型 | 以…...
I2C总线驱动开发:MPU6050应用
引言 I2C(Inter-Integrated Circuit)总线作为嵌入式系统中广泛使用的通信协议,在传感器、外设控制等领域扮演着重要角色。本文将深入探讨I2C总线的工作原理、Exynos4412平台裸机驱动实现、Linux内核中的I2C子系统架构,并以MPU605…...
15.命令模式:思考与解读
原文地址:命令模式:思考与解读 更多内容请关注:深入思考与解读设计模式 引言 在软件开发中,尤其是当系统涉及多个请求、操作或任务时,你是否遇到过这样的情况:每个操作都有自己的执行逻辑,且这些操作可能…...
2025年软件工程与数据挖掘国际会议(SEDM 2025)
2025 International Conference on Software Engineering and Data Mining 一、大会信息 会议简称:SEDM 2025 大会地点:中国太原 收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等 二、会议简介 2025年软件开发与数据挖掘国际会议于…...
博客系统测试报告
文章目录 目录1. 项目背景2. 项目简介3. 测试工具4. 测试用例5. 功能测试6. 性能测试7. 弱网测试8. 自动化测试9. bug简述10. 测试结论 目录 项目背景项目简介测试工具测试用例功能测试性能测试弱网测试自动化测试bug简述测试结论 1. 项目背景 为了将平时自己写的笔记、知识…...
window 显示驱动开发-线程同步和 TDR
下图显示了 Windows 显示驱动程序模型 (WDDM) 中显示微型端口驱动程序的线程同步的工作原理 如果发生硬件超时,则会启动 超时检测和恢复 (TDR) 进程。 GPU 计划程序调用驱动程序的 DxgkDdiResetFromTimeout 函数,这将重置 GPU。 DxgkDdiResetFromTimeou…...
GEC6818蜂鸣器驱动开发
相关知识:Linux设备驱动开发 insmod 编译好的.ko文件后再运行beep_app.c编译完成的可执行文件即可使板子蜂鸣。 beep_drv.c: #include <linux/module.h> //包含了加载模块时需要使用的大量符号和函数声明 #include <linux/kernel.h> //包含了printk内…...