- 博客(53)
- 收藏
- 关注
原创 P1473 [USACO2.3] 零的数列 Zero Sum
本文介绍了洛谷P1473题目的DFS解法。题目要求在1到N的数字序列中插入空格、加号或减号,使表达式结果为0。解题思路是通过DFS枚举所有可能的符号组合,按ASCII顺序搜索,并计算每种组合的值。代码实现包括calc()函数计算表达式值,printExpr()输出有效解,以及dfs()递归枚举符号。该算法适用于N≤9的小数据范围,能高效找出所有符合条件的表达式。
2026-05-13 09:30:00
191
原创 5.ROS话题通信编程(万字详解)
ROS Master负责保管Talker和Listener注册的信息,并匹配话题相同的Talker与Listener,帮助Talker与Listener建立连接,连接建立后,Talker可以发布消息,且发布的消息会被Listener 订阅。该函数将根据给定的话题在ROS master注册,并自动连接相同主题的发布方,每接收到一条消息,都会调用回调函数,并且传入该消息的共享指针,该消息不能被修改,因为可能其他订阅对象也会使用该消息。注意,在构建的时候,我们只需要"message_generation"。
2026-05-10 21:45:16
406
原创 4.ROS基础编程(2.基本数据结构或API分析)
阻塞函数(ros::spin())没有放在while循环中,这也就不会有“ros::Rate loop_rate(5)“这条代码,也就是说ros::spin()并不会按照一定频率执行,而是一直执行阻塞了代码执行的通道,也就是说卡在这里了,卡在这里等待着话题接受由发布者发布的新的数据,来一个我就处理一个。也就是说非阻塞函数(ros::spinOnce())更像异步,跟不上趟的那部分数据用缓冲队列进行存储等待下一次一起处理掉,而阻塞函数(ros::spin())更像同步,那边发一个,我这边处理一个。
2026-05-09 22:22:41
428
原创 3.ROS基础编程(1.编程工具的配置与使用)
✅博客主页:爆打维c-CSDN博客 🐾🔹分享自己学习AI/编程知识的过程 🐾🔹我的GitHub代码仓库该文章是对这篇博客的续写,将补全之前没讲到的知识,想系统了解ROS知识的可以去看我的专栏,持续更新中~~~
2026-05-01 09:30:00
459
原创 2.ROS计算图资源的命名与解析
除了以上三种基本的命名类型,ROS还提供了另一种被称为匿名名称的命名机制,一般用于为节点进行自动、唯一性的命名(匿名并不是指没有名字,而是指非用户指定、没有语义信息的名字)。全局名称可以在任何地方都可以使用,如命令行工具或源代码中,都有明确的含义,不会产生二义性,也无需额外的上下文信息来决定名称指的哪个资源。将相对名称转化为全局名称,是将当前默认的命名空间的名称加在相对名称的前面,从而将相对名解析为全局名称。这个附加选项的作用是在节点的基本名称后面追加某个额外的文本,以确保节点的名字是唯一的。
2026-04-29 22:44:41
455
原创 一文带你看懂unordered_map(附例题)
今天刷题的时候看到了一个很适合学习unordered_map哈希表增删查改操作的题目,在这里分享给大家。
2026-04-29 17:45:00
359
原创 别再乱刷题了!蓝桥杯省一题单食用指南
这份题单不是让大家机械地刷完。更重要的是通过这些题,把蓝桥杯常见的思路练熟。大概可以按这个顺序来:先学知识点,再刷基础题,然后刷变式题,最后做总结和复盘。蓝桥杯省一没有想象中那么神秘。只要你能学会暴力和基础的枚举、贪心,就已经很有竞争力了!!最后祝大家在比赛中都能拿到自己满意的成绩*★,°*:.☆( ̄▽ ̄)/$:*.°★*大家有疑问的可以私信或者评论,我会为大家一一解答t=Q239。
2026-04-28 19:30:00
550
原创 一篇文章带你认识LangChain
本文介绍了大语言模型与LangChain的基础概念:LLM是基于海量文本训练的强大语言生成引擎,擅长问答、总结、翻译等,但存在知识滞后、不了解私有数据和幻觉等局限。AI应用是面向用户的最终产品,而LangChain则是面向开发者的框架,负责将Prompt、模型、知识库、工具和流程组织起来,帮助高效构建更完整、实用的LLM应用。
2026-04-23 18:33:03
365
原创 Github配置SSH Key(新手友好版)
本文详细介绍了GitHub配置SSH密钥的完整流程。首先解释了SSH的作用(安全通信协议)及其在GitHub中的用途(身份验证和代码传输)。配置步骤包括:检查现有密钥、生成新密钥(使用ssh-keygen命令)、获取公钥内容、将公钥添加到GitHub账户,最后通过ssh-T命令验证配置是否成功。配置完成后可实现免密推送代码,提升开发效率。文章还附有示意图和参考链接,帮助用户直观理解每个操作步骤。
2026-03-17 15:18:30
870
原创 手把手教你创建虚拟环境(包含venv和conda)
虚拟环境最常见于Python开发(如使用venv或virtualenv工具),但类似概念也存在于其他语言或系统(如Node.js的nvm或Docker容器)。在Python中,使用内置的venv模块(Python 3.3+自带)是最简单的方式。这样,可以为不同项目使用不同的Python版本和包,而不会相互干扰。我们激活它,注意前面的括号发生了改变,变成了test环境了,这下我们离成功不远了!打开后,默认是base环境,注意!激活环境后,所有 Python 和 pip 命令都会使用虚拟环境中的版本。
2025-11-18 16:00:00
1584
原创 C#中参数三兄弟ref、out、in
wp:table特性 (Feature)refoutin主要目的读/写只写 (输出)只读数据流向双向 (In/Out)单向 (Out)单向 (In)调用前必须初始化?是否是方法内可以修改?是是否(编译错误)方法内必须赋值?否是否主要用途修改已存在的值返回多个值性能优化 (避免大结构体复制)/wp:table。
2025-07-07 10:55:31
893
原创 Docker的介绍与安装
简单来说,Docker 就像一个“装箱子”的工具,这个箱子叫做“容器”。你写的程序和它运行需要的环境(比如操作系统、软件、工具)都装进一个箱子里。这个箱子可以搬到任何一台电脑上,不用担心环境不一样导致程序不能运行。
2025-06-28 14:16:39
824
原创 登录Xshell主机及Linux基本指令
随着开源软件在世界范围内影响力日益增强,Linux服务器领域、桌面领域、移动嵌入式领域、云计算/大数据领域等市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。今天我们将详细讲解一下Linux的基本指令,也就是如何使用这个操作系统。
2025-03-17 20:14:47
1317
原创 数据结构--AVL树(平衡二叉树)
本文简单介绍了有关AVL树的一些基本概念和相关代码实现,AVL树的概念性质,使用场景和效率,以及如何实现,实现过程中怎么保持平衡
2024-11-26 13:11:49
1932
8
原创 C++之继承
c++是面向对象的编程语言,三大特性就是封装、继承、多态,本文将着重介绍继承这一特性。了解了继承的基本概念,我们下面将讲到继承的用法.
2024-10-26 14:53:59
1309
27
原创 C语言实现贪吃蛇小游戏
控制台函数 - Windows Console | Microsoft Learn。准备工作就绪,现在我们来分析需要实现的功能。先在snack.h中声明维护蛇的结构体。判断蛇下一步往哪走 是否吃掉食物?写游戏需要的数据类型和函数声明。Win32 API控制台函数。1. 打开VS新建一个空项目。的使用不清楚的同学可以去。c语言 贪吃蛇游戏实现。里面给出了详细的解释。
2024-09-16 15:21:24
2406
28
原创 【c++】类和对象详解
class为类定义的关键字class 类名{//代码块(类的主体)//注意分号不能省略1.类体中的内容称为类的成员,类中的变量称为类的成员变量,类中的函数为类的成员函数2.为了区分成员变量,我们常在成员变量前加一个 _ ,以此来区分public://成员函数代码块...private:int _year;int _month;int _day;3.C++中也可以用struct定义类,C++兼容C,明显的变化是struct里面也能定义函数,不过我们这里还是推荐用class定义类。
2024-09-11 20:30:18
1475
18
原创 深拷贝与浅拷贝
🔹分享c语言知识及代码深拷贝和浅拷贝是在编程中,特别是在处理对象复制时经常遇到的概念,它们之间的主要区别在于拷贝的深度和对象间的独立性。
2024-09-04 22:53:40
541
5
原创 八大排序(超详细)
元素集合越接近有序,直接插入排序算法的时间效率越高时间复杂度:O(N^2)空间复杂度:O(1)稳定性:稳定希尔排序是对直接插入排序的优化。当gap > 1时是预排序,让数组更接近于有序。当gap == 1时,数组已经接近有序的了,就会增加排序的效率,达到优化的效果。希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算。我们取的是gap=gap/3+1,所以时间复杂度大约是O(n^1.3).稳定性:不稳定空间复杂度:O(1)
2024-08-12 17:00:56
931
11
原创 ASCII 码表(建议收藏)
示例运行此代码#include <iostream> int main(){ std::cout << "Printable ASCII [32..126]:\n"; for (char c{' '}; c <= '~'; ++c) std::cout << c << ((c + 1) % 32 ? ' ' : '\n'); std::cout << '\n';}可能的输出:
2024-05-09 19:55:30
495
原创 将整数的二进制位的奇偶数位交换
的偶数位,并将结果左移 1 位;最后,使用逻辑或运算符将两个结果合并。这个宏利用了二进制掩码来表示整数的奇数位和偶数位。的奇数位,并将结果右移 1 位;经过宏的处理后,奇偶位发生了交换,变成了。在上面的示例程序中,我们将整数。可以看到,原始的二进制位。🔹分享c语言知识及代码。宏的工作原理是,首先用。
2024-04-01 17:47:55
443
2
原创 深入了解C语言中的offsetof宏
offsetof是一个C语言宏,定义在stddef.h头文件中。它接受两个参数:第一个参数是结构体类型,第二个参数是结构体中的成员名。它的作用是计算出指定成员在结构体中的偏移量(以字节为单位)。它返回一个无符号整数,表示从结构体的起始地址到指定成员的字节偏移量。
2024-04-01 17:39:41
733
原创 文件操作详解篇(初学者必看)
如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。程序⽂件、数据⽂件(从⽂件功能的⻆度来分类的)。程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执行程序(windows 环境后缀为.exe)。
2024-03-31 17:19:21
2339
4
原创 atoi函数及模拟实现
▪️是C语言中的一个库函数,用于将字符串转换为对应的整数。▪️ 规则是:跳过不可见字符,碰到负号或者数字开始转换,转换到非数字字符为止。头文件原文:需要注意的是,atoi函数的返回值为int类型。当遇到无效输入或非数字字符时,atoi函数会返回0。这意味着在处理可能包含无效输入的字符串时,应该注意检查返回值来判断转换是否成功。另外,需要注意atoi函数没有处理整数溢出的能力。如果转换的结果超出了int类型的范围,将导致结果不准确。为了处理溢出情况,可以考虑使用更强大的函数,如。
2024-03-20 12:58:26
1549
原创 HJ31 单词倒排
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;1、构成单词的字符只有26个大写或小写英文字母;数据范围:字符串长度满足 1≤n≤10000。2、非构成单词的字符均视为单词间隔符;对字符串中的所有单词进行倒排。4、每个单词最长20个字母;输入一行,表示用来倒排的句子。
2024-03-17 21:20:22
664
1
原创 指针易错点(超详细)
•const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。但是指针变量本⾝的内容可变。•const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指向的内容,可以通过指针改变。2.野指针•野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)野指针成因:1.指针未初始化2.指针越界访问3.指针指向的空间被释放为防止野指针,对应的我们需要1.指针初始化2.注意指针越界3.
2024-03-08 14:41:21
1264
1
原创 多数元素(同归于尽消杀法)
各路军阀一直以这种以一敌一同归于尽的方式厮杀下去,直到少数阵营都死光,那么最后剩下的几个必然属于多数阵营,winner 就是多数阵营。(多数阵营 51个,少数阵营只有49个,死剩下的2个就是多数阵营的人)2.后一个士兵若跟前一个士兵同阵营,则集合起来占领高地,领主不变,阵营人数+1,否则同归于尽阵营人数-1。1.先来到高地的士兵占领高地,此时领主 winner 就是这个阵营的人,cnt++,代表阵营人数+1。由于多数超过50%, 比如100个数,那么多数至少51个,剩下少数是49个。
2024-03-06 13:57:41
806
1
原创 寻找数组的中心下标
给你一个整数数组nums,请计算数组的。数组是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回的那一个。如果数组不存在中心下标,返回-1。
2024-03-05 14:00:55
898
1
原创 (C语言)二分查找 超详细
分治即“分而治之”,“分”指的是将一个大而复杂的问题划分成多个性质相同但是规模更小的子问题,子问题继续按照这样划分,直到问题可以被轻易解决;经过分治后的子问题,需要将解进行合并才能得到原问题的解,因此整个分治过程经常用递归来实现。🎃步骤1:写一个二分查找的函数找到元素在数组中出现的位置,每次检查区间中点值,根据与中点的大小比较,确定下一次的区间。二分查找找到k+0.5应该出现的位置和k−0.5应该出现的位置,二者相减就是k出现的次数。,如果一个数组是无序的,那么就不能使用二分查找的办法找到一个元素的位置。
2024-03-02 23:29:23
5470
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅