- 博客(58)
- 收藏
- 关注
原创 【C++】中介者模式
中介者模式(Mediator Pattern)是一种【行为型】设计模式,它通过一个中介对象来封装一系列对象之间的交互,使各对象不需要显式地相互引用,从而降低耦合度,并可以独立地改变它们之间的交互。这种模式将多对多的交互转化为一对多的交互,使系统更易于维护和扩展。
2025-06-30 11:08:01
259
原创 【C++】迭代器模式
迭代器模式(Iterator Pattern)是一种【行为型】设计模式,它提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。这种模式将遍历逻辑封装在迭代器对象中,使客户端可以统一使用迭代器来访问不同类型的聚合对象,无需关心对象的具体实现。
2025-06-30 10:29:27
444
原创 【C++】解释器模式
解释器模式(Interpreter Pattern)是一种【行为型】设计模式,它定义了一种语言的语法表示,并提供一个解释器来解释该语言中的句子。这种模式将语言中的每个语法规则映射为一个类,使得可以通过组合这些类来解析和执行复杂的表达式。
2025-06-27 09:45:03
857
原创 【C++】责任链模式
责任链模式(Chain of Responsibility Pattern)是一种【行为型】设计模式,它允许你将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求为止。这种模式将请求的发送者和接收者解耦,使得多个处理者都有机会处理请求,而无需客户端直接知道具体的处理者。
2025-06-27 09:25:14
439
原创 【C++】命令模式
命令模式(Command Pattern)是一种【行为型】设计模式,它将请求封装为对象,从而使你可以用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。这种模式将发起请求的对象(客户端)与执行请求的对象(接收者)解耦,通过命令对象作为中间层来协调两者。
2025-06-27 09:23:47
728
原创 【C++】代理模式
代理模式(Proxy Pattern)是一种【结构型】设计模式,它允许通过代理对象控制对另一个对象(目标对象)的访问。代理对象在客户端和目标对象之间充当中间层,负责处理与目标对象的交互,例如延迟加载、访问控制、缓存或日志记录等。
2025-06-26 09:11:40
791
原创 【C++】组合模式
组合模式(Composite Pattern)是一种【结构型】设计模式,它允许你将对象组合成树形结构以表示 “部分 - 整体” 的层次关系。这种模式使得客户端可以统一处理单个对象和对象组合,无需区分它们的具体类型。
2025-06-26 09:10:10
1131
原创 【C++】享元模式
享元模式(Flyweight Pattern)是一种【结构型】设计模式,它通过共享对象来减少内存使用和提高性能。该模式将对象的状态分为**内部状态**(可共享的不变部分)和**外部状态**(不可共享的变化部分),通过共享内部状态对象并动态注入外部状态,实现对象的高效复用。
2025-06-25 09:13:24
519
原创 【C++】外观模式
外观模式(Facade Pattern)是一种【结构型】设计模式,它为复杂的子系统提供一个统一的接口,使客户端只需通过这个简单的接口就能访问子系统,而无需关心子系统内部的复杂实现。这种模式简化了客户端与子系统之间的交互,降低了系统的耦合度。
2025-06-25 09:09:18
804
原创 【C++】桥接模式
桥接模式(Bridge Pattern)是一种【结构型】设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合而非继承来实现解耦,特别适用于需要处理多个变化维度的复杂系统。
2025-06-23 14:37:59
928
原创 【C++】装饰模式
装饰模式(Decorator Pattern)是一种【结构型】设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式通过创建一个装饰器类,来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。装饰模式在不使用继承的情况下,实现了对象功能的动态扩展。
2025-06-23 14:33:19
1385
原创 【C++】适配器模式
适配器模式(Adapter Pattern)是一种【结构型】设计模式,用于解决接口不兼容的问题。当两个原本不兼容的类需要协同工作时,适配器模式通过创建一个中间层(适配器)来转换接口,使它们能够无缝协作。这种模式在遗留系统集成、第三方库对接等场景中尤为常见。
2025-06-19 10:38:43
666
原创 【C++】原型模式
原型模式(Prototype Pattern)是一种【创建型】设计模式,它允许通过复制现有对象(原型)来创建新对象,而无需依赖显式的类实例化过程。这种模式特别适用于创建成本较高或实例化过程复杂的对象,通过克隆现有对象可以显著提高性能。
2025-06-19 10:35:42
686
原创 【C++】简单工厂模式/工厂方法模式/抽象工厂模式
抽象工厂模式、简单工厂模式和工厂方法模式都是【创建型】设计模式,它们的核心目的都是将对象的创建和使用分离,但在实现复杂度、灵活性和应用场景上存在显著差异。以下从定义、结构、适用场景和代码示例四个方面进行对比分析。
2025-06-18 15:48:43
660
原创 【C++】建造者/构建器/生成器模式
C++ 建造者/构建器/生成器模式(Builder Pattern)是同一种【创建型】设计模式,它将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式特别适用于创建具有多个组成部分的复杂对象,例如配置对象、文档生成器或 UI 组件构建。
2025-06-18 15:40:47
969
原创 【C++QT】Combo Box 组合框控件详解
在Qt中,`QComboBox` 是通用组合框,结合下拉列表与可编辑文本框,可通过 `addItem` 添加选项,支持可编辑模式,具备可编辑性、下拉列表、数据存储、基于模型 / 视图架构等特性;`QFontComboBox` 是 `QComboBox` 的子类,专门用于选择字体,能自动列出系统可用字体,有字体选择、过滤、预览等特性。
2025-04-30 10:33:53
1543
1
原创 【C++QT】Item Views 项目视图控件详解
在 Qt 中,`Item Views`组控件提供了强大且灵活的方式来展示和管理数据。这些控件基于模型 - 视图(Model - View)架构,将数据的存储和呈现进行分离,使得代码具有更好的可维护性和可扩展性。本文详细介绍了`List View`、`Tree View`、`Table View`和`Column View` 控件的使用方法和信号与槽示例。
2025-04-28 14:40:30
954
1
原创 【Windows】删除已卸载的系统启动项
电脑启动登陆Windows系统时,弹出了多个版本的系统选项,其中仍包含已经被卸载的Windows版本。要彻底删除已卸载的 Win10/Win11 或其他版本的Windows系统启动项,需从系统引导配置和 UEFI/BIOS 设置两方面入手。本文包含了详细的解决方案及步骤解析。
2025-04-28 10:25:34
2315
1
原创 【C++QT】Layout 布局管理控件详解
在 C++ Qt 中,布局管理器(Layout)是用于自动管理窗口中控件的大小和位置的重要工具。`Layout` 组中常见的布局类型有 `QVBoxLayout`(垂直布局)、`QHBoxLayout`(水平布局)、`QGridLayout`(网格布局)和 `QFormLayout`(表单布局)。本文将详细解析这些布局管理器的使用方法和应用场景。
2025-04-27 17:24:22
1022
1
原创 【C++QT】Buttons 按钮控件详解
在 Qt 的 `QtWidgets` 模块中,**Buttons 组控件**是用户交互的核心组件,涵盖触发操作、状态选择、对话框按钮布局等功能。本文包含 **QPushButton、QToolButton、QCheckBox、QRadioButton、QCommandLinkButton、QDialogButtonBox** 的详细用法、技巧及实战示例。
2025-04-24 17:12:27
1323
1
原创 【NVIDIA】Isaac Sim 4.5.0 Franka 机械臂参数解析
NVIDIA `Isaac Sim 4.5.0` 对 Franka 机械臂的仿真支持实现了技术与应用的双重突破,基于 PhysX 5.0 引擎构建的高精度物理模型与动力学系统,结合 GPU 加速碰撞检测和自定义关节参数,为机械臂运动稳定性、力控精度及多实例协同效率带来显著提升。其集成的多模态传感器(力扭矩、编码器、视觉)与跨平台控制接口(ROS 2、Python/C++、强化学习),既满足工业级运动规划与实时控制需求,也为科研场景提供了算法验证与故障注入的灵活平台。
2025-04-23 14:21:32
536
1
原创 【NVIDIA】Isaac Sim 4.5.0 加载 Franka 机械臂
在机器人研发领域,高效的仿真平台是加速算法验证与系统调试的核心基础设施。作为机器人仿真领域的标杆级工具,**NVIDIA Isaac Sim 4.5.0** 凭借其强大的物理仿真能力、跨平台兼容性和生态整合优势,成为全球开发者的首选。本文将结合Franka机械臂的仿真案例,深入解析Isaac Sim 4.5.0的核心特性,并通过实战代码演示如何快速搭建Franka机械臂仿真环境。
2025-04-21 17:24:58
1372
1
原创 【NVIDIA】Isaac Sim 4.5.0 版本安装教程
Isaac Sim 最新版本为2025年1月发布的 4.5.0 版本,4.5.0 之前的版本需要下载 NVIDIA Omniverse Launcher 启动器,但 4.5.0 版本之后 Omniverse Launcher 将被弃用,因此后续安装需要在NIVIDA官网下载 Isaac 的压缩包和资产包,本文详细介绍了IsaacSim4.5.0版本的安装步骤及注意事项。
2025-04-16 17:27:09
2029
1
原创 【MySQL】常用语句
MySQL 常用语句主要围绕数据库、表和数据操作展开,能满足基本的数据库管理需求。本文对其进行分类总结。掌握这些MySQL语句后,可覆盖MySQL日常开发与管理的90%场景。进阶学习可探索存储过程、触发器、视图等高级功能。
2025-02-04 22:58:25
2382
1
原创 【C++】Lambda表达式
Lambda表达式是C++11引入的匿名函数对象,具有以下特点:· 就地定义,无需单独命名· 可捕获上下文变量· 自动推导返回类型(多数情况)· 可作为函数参数传递
2025-02-04 12:05:22
5320
原创 【C++】线程池实现
线程池是一种并发编程技术,通过预先创建一组线程并复用它们来执行多个任务,避免了频繁创建和销毁线程的开销。它特别适合处理大量短生命周期任务的场景(如服务器请求、并行计算)。线程池的核心组件1. 任务队列(Task Queue)存储待执行的任务(通常是函数对象或可调用对象)。2. 工作线程(Worker Threads)一组预先创建的线程,不断从队列中取出任务并执行。3. 同步机制互斥锁(Mutex):保护任务队列的线程安全访问。条件变量(Condition Variable):通知线程任
2025-02-03 20:06:36
1941
原创 【C++】__declspec含义
`__declspec(dllexport)` 是 Microsoft Visual C++ 编译器提供的一个扩展,用于指示一个函数或变量在 DLL(动态链接库)中是**可导出的**。它告诉编译器将函数或变量放入 DLL 的导出表中,以便其他程序(包括其他编程语言和应用程序)可以使用它们。
2024-01-15 16:41:43
1711
1
原创 【C++】static_cast和dynamic_cast使用详解
`static_cast` 并不执行运行时类型检查。因此,如果你尝试执行一种不安全的转换,例如将基类指针转换为不相关的派生类指针,编译器可能不会发出警告或错误,但在运行时可能会导致未定义的行为。在这种情况下,你可能需要考虑使用 `dynamic_cast`,它执行运行时类型检查,但仅在涉及多态的情况下才适用。
2024-01-15 15:00:20
3415
1
原创 【C++】单一职责原则
单一职责原则(Single Responsibility Principle,简称 SRP)是 SOLID 原则之一,提出了一个类应该只有一个修改的理念。具体来说,一个类应该只有一个引起它变化的原因,即一个类应该只有一个责任。如果一个类承担的责任过多,那么对这个类的修改就会影响到所有依赖它的地方。
2023-12-14 16:47:25
1530
1
原创 【C++】策略模式
策略模式(Strategy Pattern)是一种【行为型】设计模式,它定义了一系列算法,将每个算法封装到不同的类中,并且使它们可以相互替换。策略模式允许客户端代码选择算法的实现,而不是将算法的选择硬编码在客户端代码中。
2023-12-14 16:04:30
1605
1
原创 【linux】tar:时间戳是未来的解决办法
使用tar解压文件时提示如下信息:tar :testFile:时间戳 2023-11-23 21:36:57 是未来的 24157.388023964 秒之后
2023-11-23 15:26:38
1506
1
原创 【PB】protobuf安装使用详解
PB 是 Protocol Buffers 的简称。Protocol Buffers 是一种由 Google 开发的数据序列化格式,用于结构化数据的存储、交换和通信。它是一种轻量、高效、可扩展的数据交换格式。PB 通过使用预定义的消息类型和二进制编码来表示数据。你可以使用 Protocol Buffers 的定义语言(Protocol Buffers IDL)来定义数据结构和消息类型,然后使用相应的编译器将定义文件编译成特定编程语言的类或结构体,从而实现在不同编程语言中使用 Protocol Buffe
2023-10-24 10:55:45
1071
原创 【C++】TCP通信服务端与客户端代码实现及详解
本文分享了TCP/IP的客户端及服务端的C++代码实现,并进行了详细的解析。其中服务端使用Winsock库实现了简单的TCP服务器,它监听指定端口并与客户端进行通信。代码仍然有改进的空间,例如可以处理更多的错误情况,添加更多的日志输出,以及更完善的输入验证等。
2023-10-19 13:41:43
8816
9
原创 【C++11/C++20】特性介绍
C++11 带来了许多强大的功能,提高了代码的可读性和性能,并使C++成为一个更现代化的编程语言。自那时以来,C++的标准还经历了多个版本的更新,每个版本都引入了新的特性和改进。C++20 极大地丰富了C++语言,提供了更多的现代化编程工具和性能优化,使得C++成为一个更加强大和灵活的编程语言。
2023-10-02 20:27:42
611
原创 【C++】单例模式
单例模式(Singleton Pattern) 是一种常见的【创建型】设计模式,本质是:只提供唯一的类的实例,其具有全局变量的特点,在任意位置都可以使用该类提供的接口访问到其唯一的实例对象。
2023-09-22 10:07:20
205
1
原创 【C++】简单工厂模式
简单工厂模式是一种实例化对象的方式,其专门定义一个类用于创建其他的类,被创建的实例具有同一个基类,使用时只需要输入相应枚举即可创建所需的对象。在程序中,若需要创建的对象较多,导致new对象时复杂混乱,此时使用简单工厂模式,可以将对象的创建与操作分为两部分,方便后期的维护与管理。
2023-09-05 15:34:57
229
1
原创 【Linux】常用指令汇总
- 以下示例涵盖了常见的Linux指令用法,可以根据具体需求进行调整和扩展。- 在终端中输入`man`命令查看每个指令的详细帮助文档,以了解更多选项和用法。
2023-08-12 16:23:42
257
原创 【C++】读取txt文件并查询指定字段
按字符读取或按行读取txt文件,然后使用string::find()函数进行查找指定字段,若查到则返回0,未查到则返回-1。
2023-07-07 13:56:51
2389
4
合成材料纹理贴图素材138x108(290张)
2025-04-27
基于NVIDIA IsaacSim4.5.0 版本的Franka机械臂USD文件(导入即可使用)
2025-04-22
TLD(Tracking-Learning-Detection)目标跟踪算法的C++实现
2023-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人