自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 本地部署 Ollama 模型并实现本地可视化聊天界面(使用 DeepSeek)

通过以上步骤,您已经成功在本地部署了一个 Ollama 模型实例,并使用ChatBox 应用,能够与模型进行交互并显示响应结果。

2025-02-12 18:57:01 3071

原创 C语言参数传递——值传递与地址传递

最近开始复(yu)习(xi)C语言,看到参数传递这里,又遇到了以前一直没有搞清楚的一个问题,我相信这个问题大家许多初学者也会遇到过,就是C语言函数的参数传递方式。 C语言中参数的传递有两种方式: 1)值传递 2)地址传递 3)数组作为函数参数

2017-09-15 23:32:58 12601 6

原创 一文说明不同IO多路复用 select、poll、epoll 和 kqueue ?不信你还看不懂!

一文说明不同IO多路复用 select、poll、epoll 和 kqueue ?不信你还看不懂!

2025-03-31 17:27:21 261

原创 什么是IO多路复用(I/O Multiplexing)

IO多路复用是用同步的方式实现异步的效果,本质仍是同步IO(需主动读取数据),但通过内核事件通知机制大幅提升效率。

2025-03-31 17:19:53 418

原创 什么是IO?有哪些IO类型与模式?

IO是计算机与外界沟通的桥梁,理解其原理和优化方法对开发高效程序(如Web服务器、实时数据处理系统)至关重要。的核心概念,指信息从外部传入系统(Input)或从系统传出到外部(Output)的过程。

2025-03-31 17:17:07 261

原创 一次性看懂10种排序算法(附代码)

常见的排序算法可以根据其实现原理分为以下几类,每种算法都有其特定的应用场景和性能特点。

2025-03-10 10:56:19 719

原创 1000瓶酒中1瓶毒药用10只小白鼠如何找出?——用二进制思维破解「千瓶毒药」难题?

这个看似简单的谜题,实际蕴含着深刻的计算机科学原理。我们先进行初步分析:如果用最笨的"逐一试毒"法,需要999只小白鼠,显然存在巨大的优化空间。已知小白鼠服毒后会在1小时内死亡,现在给你1小时的时间,至少需要多少只小白鼠才能找出有毒的那瓶药水?每个小白鼠的生死状态都承载着1位信息(0表示存活,1表示死亡)。在真实的软件开发中,类似的思维模式可以帮助我们设计出更优雅的算法。通过这种编码方式,10只小白鼠的生死状态形成了独一无二的二进制ID,精准锁定目标。死亡小白鼠的位组合直接构成毒药的二进制编号。

2025-02-27 15:15:19 917

原创 深入浅出C++11新特性详解

【代码】深入浅出C++11新特性详解。

2025-02-25 19:02:02 224

原创 蓝桥杯2024年第十五届省赛真题-封闭图形个数

时间限制: 5s 内存限制: 512MB 提交: 1486 解决: 508。

2025-02-24 16:35:09 589

原创 「软件设计模式」责任链模式(Chain of Responsibility)

责任链模式(Chain of Responsibility)通过将多个处理对象连接成链,并沿着链条传递请求,直到有对象处理它为止。这种模式实现了请求发送者与接收者的解耦。责任链模式将离散的处理节点组织成灵活的执行链路,这种设计思想在C++标准库中也有体现(如异常处理栈)。掌握该模式的关键在于理解处理节点的独立性,以及如何构建高效的传递机制。当你的系统需要灵活多变的处理流程时,不妨考虑让责任链来大显身手!

2025-02-24 14:48:06 476

原创 「软件设计模式」命令模式(Command)

通过本文,我们不仅掌握了命令模式的理论知识,还实现了一个功能完备的智能家居控制系统。这种模式在GUI事件处理、事务系统、工作流引擎等领域都有广泛应用。下次当你需要将"请求"抽象为对象时,不妨试试这个强大的模式。想象你坐在餐厅点餐时,服务员记录你的订单交给后厨,这个看似简单的过程蕴含着软件设计的智慧。命令模式(Command)正是将这种"请求封装为对象"的思想应用于软件设计,实现调用者与执行者的完美解耦。

2025-02-24 14:07:51 283

原创 「软件设计模式」状态模式(State)

状态模式(State Pattern)是面向对象设计中的行为型模式,其核心思想是将对象的行为封装到独立的状态对象中,使得对象能根据内部状态的变化动态改变行为。该模式通过以下方式解耦程序逻辑:将每个状态的行为抽象为独立类允许对象在运行时切换状态对象消除复杂的条件判断语句

2025-02-21 10:54:57 671 1

原创 「软件设计模式」策略模式(Strategy)

策略模式作为行为型设计模式的代表,为算法管理提供了优雅的解决方案。在现代C++开发中,结合模板、lambda表达式等新特性,策略模式展现出更强大的生命力。随着领域驱动设计(DDD)的普及,策略模式在战术模式实现中也发挥着重要作用。

2025-02-18 09:00:00 871

原创 「软件设计模式」观察者模式(Observer)

通过本文的详细讲解和代码示例,读者可以深入理解观察者模式的核心思想,掌握其在C++中的实现方法。该模式在需要建立对象间动态、松耦合关系的场景中具有重要价值,合理运用可以显著提升系统的灵活性和可维护性。后续文章我们将继续探讨其他设计模式的实现与应用。观察者模式(Observer)是一种行为型设计模式,它建立了对象间的一对多依赖关系。当被观察对象(Subject)状态发生变化时,它会自动通知所有观察者(Observer)对象,形成松耦合的交互机制。

2025-02-17 08:00:00 863

原创 「软件设计模式」外观模式(Facade)

外观模式()是一种结构型设计模式,其核心思想是为复杂的子系统提供一个简化的统一接口。通过定义一个高层接口,外观模式隐藏了子系统的内部复杂性,使得客户端调用更加简单直接。核心作用降低耦合:客户端不需要了解子系统的细节。简化操作:将多个子系统的操作封装成一个高层接口。提高可维护性:修改子系统内部逻辑时,不影响客户端代码。

2025-02-16 08:30:00 610

原创 「软件设计模式」组合模式(Composite)

组合模式通过树形结构实现对象容器与内容的解耦,在保持类型透明性的同时简化了复杂结构的操作。当系统需要处理具有递归层次结构的对象时,组合模式能显著提高代码的可维护性和扩展性。

2025-02-16 08:00:00 221

原创 「软件设计模式」装饰者模式(Decorator)

装饰者模式(Decorator Pattern)是一种结构型设计模式,它通过将对象放入包含行为的特殊封装对象中,动态地为原始对象添加新功能,比继承更灵活。装饰者模式通过灵活的对象组合代替僵化的类继承,为系统扩展提供了优雅的解决方案。使用unique_ptr管理组件生命周期通过抽象类保证接口一致性利用现代C++特性简化实现当面对需要动态扩展功能的场景时,装饰者模式就像编程世界的"俄罗斯套娃",让每个装饰器层层包裹核心组件,最终组合出强大的功能集合。

2025-02-15 14:34:46 912

原创 「软件设计模式」桥接模式(Bridge Pattern)

桥接模式为复杂系统提供了优雅的维度解耦方案,其核心价值在于: 分离变与不变的部分 建立抽象与实现的动态绑定 提升系统的可维护性和扩展性

2025-02-15 07:00:00 663

原创 「软件设计模式」适配器模式(Adapter)

适配器模式(Adapter Pattern)是结构型设计模式中的"接口转换器",它像现实世界中的电源适配器一样,能够让原本接口不兼容的类协同工作。该模式通过包装对象的方式,将被适配者的接口转换为目标接口,是解决系统升级、组件复用等场景下接口不兼容问题的利器。适配器模式体现了"封装变化"的设计原则,通过中间层转换实现接口兼容。在系统演进过程中,该模式能有效降低改造风险,提高代码复用率。理解适配器模式的本质,可以帮助我们在面对接口不兼容问题时,做出更优雅的架构设计决策。

2025-02-14 09:52:21 653

原创 「软件设计模式」建造者模式(Builder)

建造者模式如同一位经验丰富的建筑大师,将看似混乱的构建过程转化为标准化的装配流程。在C++的世界中,通过合理运用友元类、移动语义和模板技术,我们能够打造出既高效又灵活的对象构建系统。

2025-02-14 09:00:00 1042

原创 「软件设计模式」单例模式(Singleton)

单例模式是一种强大的设计模式,能够帮助开发者实现实例的一致性和共享性。尽管它有一些缺点,但在特定场景下,其优势仍然显著。理解并掌握单例模式将有助于你写出更高效、更可靠的代码,并且在团队协作开发中避免重复工作和资源冲突。

2025-02-13 15:37:58 498

原创 「软件设计模式」工厂方法模式(Factory Method) vs 抽象工厂模式(Abstract Factory)

在软件工程领域,设计模式是解决常见问题的经典方案。工厂方法模式和抽象工厂模式,通过理论解析与实战代码示例,帮助开发者掌握这两种模式的精髓。抽象工厂模式通过创建相关对象族来提升系统的扩展性,强调产品系列的概念。它比工厂方法模式更高层次的抽象。掌握工厂模式是成为架构师的重要阶梯。工厂方法模式像专业工匠,专注单一产品的精雕细琢;抽象工厂模式如生产总监,统筹协调整个产品家族。理解它们的差异,才能在系统设计中做出最合适的选择。

2025-02-13 15:33:24 1012

原创 【附源码】网页版贪吃蛇小游戏开发HTML实现!

贪吃蛇是一款经典的休闲小游戏,因其简单易玩的机制和丰富的变形而深受玩家喜爱。本次开发目标是实现一款网页版贪吃蛇小游戏,并通过前端与后端结合的方式,提供一个流畅的在线体验。本次贪吃蛇小游戏开发成功实现了贪吃蛇的经典玩法,并通过前端和后端技术结合,确保了游戏的流畅性和稳定性。

2025-02-12 16:23:11 1511

原创 用Python编写经典《贪吃蛇》小游戏

合理设计游戏循环时序精确的碰撞检测实现高效的画面刷新机制操作系统:Windows/MacOS/Linux显示器分辨率:1920x1080(向下兼容)开发提示:调试时建议先关闭画面渲染,使用控制台打印坐标进行逻辑验证。

2025-02-11 16:56:26 408

原创 H.264/H.265码流中SEI内容的解析方法与实现

传输时间码、版权信息等元数据携带编码器配置参数传输用户自定义数据(如GPS坐标)正确识别NALU类型处理变长编码的type/length字段区分不同版本标准的差异。

2025-02-11 16:37:09 538

原创 DeepSeek 模型的本地部署指南

通过以上步骤,你可以成功在本地部署 DeepSeek 模型,并利用它进行各种自然语言处理任务。如果你遇到任何问题,可以参考 DeepSeek 的官方文档或社区支持。

2025-02-10 18:36:44 2138

原创 什么是H264和H265编码?

更高的压缩效率:通过更灵活的块分割和更好的运动估计技术,H265在相同bitrate下比H264能获得更高画质。多参考帧(MREF)支持:允许使用多个先前帧进行预测,减少运动估计误差。

2025-02-10 15:16:57 487

原创 Linux环境vscode clang-format格式化:vscode clang format command is not available亲测有效!

解决vscode clang-format不可用问题

2024-01-04 14:05:13 873

原创 C++嵌套类

一文了解what is C++ 嵌套类

2023-10-06 16:36:42 250

原创 什么是Java包装类

Java是一种面向对象语言,Java中的类把方法和数据连接在一起,构成了自包含式的处理单元。但在Java中不能定义数基本类型对象,为了能将基本类型视为对象进行处理,并能连接相关的方法,Java为每个基本类型都提供了包装类,如int型数值的包装类Integer和boolean型数值的包装类Boolean,这样便可以把这些基本类型转换为对象来处理了。

2019-05-25 19:29:15 276 1

原创 Java字符串用法

字符串声明字符串是Java程序中经常处理的对象,Java语言中字符串必须包含在一对双引号(“”)之内,由双引号包围的都是字符串,不能作为其他数据类型来使用,如:“1+2”的输出结果不是3.String str;//来声明字符串变量声明字符串变量必须经过初始化才能使用,否则编译器可能会报错。创建字符串String类的创建方法有下:String(char a[])用一个字符数组来创建S...

2019-05-24 20:32:22 406

原创 四张扑克牌和最大胜出求概率问题

牛客网五月份笔试模拟题题目描述AB玩扑克牌,不含大小王的52张牌中每人抽四张,和最大的胜出,抽完四张牌后每人亮出三张,判断A获胜的概率是多少?思路其实是个概率题,每人亮出三张牌后,剩下的每人一张牌相当于从剩下的46张牌堆里取,一共46*45种取法。计算出两者三张明牌的和相差多少,然后计算A要获胜的取法的数量,枚举法即可。比如A亮出3,5,7,B亮出2,6,8 sumA=15,sumB=...

2019-05-15 21:55:11 1908

原创 LeetCode——距离顺序排列矩阵单元格

题目:给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2)之间的距离是曼哈顿距离,|r1 - r...

2019-04-21 13:50:49 582

原创 求数组中第k大(小)的值——Random-Select方法的实现(线性期望时间)

首先声明一个Max(Min),循环遍历整个数组,若比当前Max(Min)大(小),替换之,最终的Max(Min)即为所求。这个方法比较简单,不再代码赘述。将Partition方法换成了RandomPartition方法,以下是在Class Sort中的方法。有个问题是,将版本一中的划分方法改为使用随机划分,偶尔会出现错误。在含有n个互不相同的元素的数组中,求得第k小的元素。两种方法都可以正确运行。k=1,即求最小值。

2019-04-02 19:54:37 454 1

翻译 Linux内核—理解进程创建、可执行文件的加载、以及进程执行、进程切换,重点理解分析fork、execve和进程切换

实验要求实验:从整理上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换进程创建进程的描述操作系统内核实现操作系统的三大管理功能,即进程管理、内存管理和文件系统,对应操作系统原理课程中最重要的三个抽象进程是进程、虚拟内存和文件。进程是怎样描述的?进程的描述有提纲挈领的作用,他可以把内存管理、文件系统、信号、进程间通信等概念和内容串起来。L...

2019-03-26 22:29:52 408

转载 求最长无重复字串问题

题目描述题目来自leetcode给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke”...

2019-03-22 15:52:35 283

原创 数据结构排序算法之快速排序法

快速排序思路

2019-03-21 12:53:22 1713

原创 数据结构之——堆结构的实现

堆堆是一个数组,可以被看成一个近似的完全二叉树,树上的每一个节点对应数组的每个元素。除了最底层外,该树是完全充满的,而且是从左向右填充。堆又分为大根堆和小根堆大根堆:父节点总是大于其子节点,小根堆:父节点总是小于其子节点。本文基于Java语言,使用数组实现一个堆结构及其操作。堆结构实现public class Heap { final int MAX = 999;// 定义最大容...

2019-03-20 21:11:23 2512

原创 Linux操作系统分析与设计——跟踪分析Linux5.0内核处理系统调用的过程

实验要求编译内核5.0 qemu -kernel linux-5.0.1/arch/x86/boot/bzImage -initrdrootfs.img 选择系统调用号后两位与您的学号后两位相同的系统调用进行跟踪分析https://github.com/mengning/menu给出相关关键源代码及实验截图,撰写一篇博客(署真实姓名或学号最后3位编号),并在博客文章中注明“原创作品转载请...

2019-03-19 22:11:57 323

原创 切割钢条最大利润问题

问题公司有购买长度为n(我们假设n不超过表格所列的最长长度,即n&amp;amp;lt;=10)的钢条,将其切割成长度为i的钢条出售,长度为i的钢条的出售价格为p[i]。钢条的长度为整数,求切割方案,使得销售利益最大。长度价格112538495106177178209241030输入:int[] p //长...

2019-03-14 19:30:26 748

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除