logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

设计模式:命令模式 Command

命令模式通过将请求封装为独立对象,实现请求与执行解耦。以文字编辑器为例,每个按钮操作被转换为具体命令类(如复制、粘贴),避免创建大量子类。命令对象包含接收者和参数,由调用者统一执行,支持撤销、队列等操作。该模式分离GUI与业务逻辑,减少代码重复,提高系统灵活性。示例代码展示了命令、接收者和调用者的协作方式,通过多态执行不同操作。

文章图片
#设计模式#命令模式
CPP多线程2:多线程竞争与死锁问题

本文围绕多线程编程中的资源竞争与死锁问题展开。首先通过示例说明多个线程操作同一变量时,因执行顺序不确定导致结果异常的竞争问题,随后介绍C++11的解决工具:std::mutex通过加锁解锁控制资源访问,std::lock_guard可自动管理锁的生命周期,std::atomic则以原子操作高效解决竞争。此外,文章还分析了因上锁顺序不当引发的死锁问题,指出保持一致的上锁顺序是有效的解决方法。这些内容

#c++
设计模式:装饰模式 Wrapper

装饰模式是一种结构型设计模式,允许通过封装对象动态添加功能。本文以通知系统为例,展示了如何在不修改原始类的情况下扩展功能。原始通知系统仅支持邮件通知,通过创建装饰器类(如SMS、微信、QQ装饰器)可以灵活组合多种通知方式。装饰器模式避免了类爆炸问题,实现了运行时功能扩展。代码示例演示了如何使用装饰器链式调用不同通知方式,客户端只需与最外层的装饰器交互即可获得所有组合功能。该模式提高了代码的可扩展性

文章图片
#设计模式#装饰器模式
Ubuntu 系统下 `.tar.gz` 文件安装程序全指南

本文详细介绍了在Ubuntu系统中安装.tar.gz格式程序的完整流程。以Postman为例,内容包括:下载安装包(使用wget命令)、解压文件(tar命令)、部署到/opt目录、配置终端快捷启动(ln创建符号链接)以及创建桌面快捷方式(.desktop文件)。文章还提供了通用的安装模板,适用于其他.tar.gz格式软件,并包含卸载方法。通过这套标准化操作,用户可以灵活安装官方最新版软件,同时保持

#ubuntu#linux
ros中使用mapserver导入的地图在rviz中发生偏移。riviz中的地图与gazebo角度不对。

问题原图:在使用gazebo_ros生成模型时设置了偏移量。解决办法:把模型导入时的偏移量去掉就好。

文章图片
#c++
ROS2系列(3):第一个C++节点

本文详细介绍了如何开发第一个ROS2 C++节点,涵盖代码编写、编译配置、调试和运行全流程。主要内容包括:1) 编写基础C++节点代码,实现节点初始化和日志输出;2) 配置CMake文件解决依赖问题;3) 设置VSCode实现代码提示;4) 节点调试技巧,包括参数处理和节点信息查看;5) 开发细节如spin函数作用、日志级别设置等。通过本文,读者可以掌握ROS2 C++开发的基本方法,为后续开发复

#c++#linux
ROS2系列 (4) : 使用功能包组织Python节点

本文讲解创建、配置、构建和运行 ROS2 Python 功能包的全流程。通过ros2 pkg create创建ament_python类型包,解析其模块、配置、测试文件等结构;编写节点代码,在package.xml添加rclpy依赖,setup.py注册可执行入口;colcon build后,可通过PYTHONPATH直接运行安装文件,或source环境变量后用ros2 run启动节点,同时解答

#python
Python argparse 模块:轻松搞定命令行参数解析

Python的argparse模块是标准库中处理命令行参数的高效工具,遵循"定义规则→解析输入→使用参数"的流程。它支持多种参数类型(数值、开关型等),可设置短/长选项、默认值和帮助信息,自动完成参数校验和错误处理。核心优点包括自动解析、类型检查、灵活配置和自动生成帮助文档。工作原理是通过ArgumentParser创建规则容器,添加参数定义后解析命令行输入,最终生成可直接使用

#python#开发语言
NumPy 系列(零):从 Python 到「数组」—— 为什么 NumPy 是数据科学的第一块基石

NumPy是Python科学计算的核心库,解决了Python原生list在高密度数值计算中的两大痛点:内存消耗大和运行速度慢。它提供高效的多维数组对象ndarray,采用连续内存块存储固定类型数据,支持向量化运算和广播机制,性能比原生list快50-80倍,内存占用仅为1/4。NumPy作为数据科学基础库,为Pandas、SciPy、Scikit-learn等高级库提供统一数据载体,同时通过内存接

#numpy#python
ROS2系列 (19) : C++服务通信实例——自定义巡逻服务接口(接口创建篇)

本文介绍了在ROS2中创建自定义C++服务接口的具体流程。以"巡逻海龟"案例为例,详细说明了如何在已有功能包中添加自定义服务接口,包括:1) 创建Patrol.srv文件定义请求和响应结构;2) 配置package.xml声明接口依赖;3) 更新CMakeLists.txt设置构建规则。文章还提供了构建验证的方法,为后续开发服务端和客户端奠定了基础。通过本教程,开发者可以掌握R

    共 17 条
  • 1
  • 2
  • 请选择