自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在 Ubuntu 上安装最新版本的 CMake

在 Ubuntu 系统上安装最新版本的 CMake 可以通过官方的二进制文件进行安装,避免使用 PPA 或 Snap,确保获取最新版本。通过这些步骤,你可以顺利地在 Ubuntu 系统上安装并配置最新版本的 CMake,而不依赖于 PPA 或 Snap。命令下载最新版本的 CMake。为了让系统能够找到新的 CMake 命令,我们需要将。接下来,将解压后的 CMake 文件夹移动到。这一步将把 CMake 的文件夹移动到。路径下,你可以根据需要更改路径名。然后,运行下面的命令使修改的。

2025-02-12 13:30:46 207

原创 Linux-性能分析top

toptop是Linux系统中一个常用的性能监控工具,能够动态显示系统的资源使用情况,包括CPU、内存、进程等信息。通过top命令,用户可以实时查看系统的状态,并进行性能分析,找出资源占用较高的进程,帮助优化系统性能。

2025-01-19 19:01:35 587

原创 Linux中的文件上传和下载

在SecureCRT中,将鼠标移动到连接窗口的标题上,按鼠标右键,选择“连接SFTP”标签,即可进入SFTP模式。

2025-01-18 23:13:13 523

原创 Linux链接

在Linux系统中,链接分为硬链接和软链接(符号链接)两种类型。

2025-01-18 16:38:31 366

原创 Linux 管道操作

在Linux中,管道(Pipe)是一个非常强大且常用的功能,它允许将一个命令的输出直接传递给另一个命令作为输入,从而能够高效地处理和分析数据。管道在多个命令之间建立数据流,减少了文件的读写操作,提高了处理效率。本文将详细讲解管道的概念、使用方法以及结合具体例子来帮助理解。管道的作用是将一个命令的输出结果直接传递给另一个命令作为输入。通过使用管道,用户可以将多个简单的命令链接在一起,完成复杂的任务。管道可以与其他常用命令组合使用,形成更复杂的数据处理流程。等命令对数据进行进一步处理。

2025-01-18 13:37:26 599

原创 Linux 文件内容操作

在Linux系统中,有一系列常用的命令可以帮助我们查看、统计和分析文件的内容。以下是关于文件内容操作的详细总结,包括常见命令的使用方法和示例。在指定文件中查找匹配的字符串,并输出包含该字符串的行。统计文件的行数、字数和字节数。文件的行数、字数和字节数。该命令只会显示文件的行数。字符串的行,并输出。

2025-01-18 13:28:27 881

原创 B-spline 控制点生成

A( A )A数学上A( A )A反映了 B-spline 基函数对控制点的权重,建立了控制点与轨迹点、边界条件之间的线性关系。代码中通过位置、速度、加速度约束,构造了包含所有约束的矩阵A( A )A。

2025-01-10 21:22:30 712

原创 Boost.Asio 异步读写操作

【代码】Boost.Asio 异步读写操作。

2025-01-09 23:46:13 532

原创 Boost.Asio 同步读写及客户端 - 服务器实现详解

Boost.Asio作为一个强大的跨平台网络编程库,为开发者提供了丰富的网络操作接口。在之前的学习中,我们已接触到其同步读写的API函数,本文将在此基础上,深入探讨如何运用这些API构建一个完整且能实际运行的客户端与服务器示例,且双方均采用阻塞式的同步读写方式来实现通信。服务器端的设计相对复杂,主要由两个关键函数协同完成工作。

2025-01-08 21:01:33 872

原创 Boost.Asio 同步读写操作详解

写操作write_some: 低级别,需要循环调用。send和write: 高级别,一次性发送。读操作read_some: 低级别,需要循环调用。receive和read: 高级别,一次性读取。read_until: 按分隔符读取数据流。Boost.Asio 提供了丰富的同步 API,可以根据具体需求灵活选择使用,适用于各种网络应用场景。

2025-01-08 20:43:01 626

原创 Hybrid A*算法-KinodynamicAstar::estimateHeuristic

通过以上严谨的推导过程,我们完整地展示了 Hybrid A算法中关键控制输入公式uαμtβμuαμ​tβμ​的来源。基于构造 Hamilton 函数、运用最优性条件求导、求解协态方程并代入最优控制输入公式等一系列步骤,不仅验证了公式的合理性,更深入揭示了其背后的最优控制理论支撑。这对于深入理解 Hybrid A算法、精准调校算法参数以及在复杂场景下优化轨迹规划具有不可忽视的指导意义,为相关领域的研究与应用提供了坚实的理论基石。

2025-01-08 16:12:34 761

原创 Boost.Asio 缓冲区和 `buffer()` 函数的深入理解与应用

存储要发送的数据(例如客户端向服务器发送消息)。存储接收到的数据(例如服务器接收客户端请求的数据)。:表示可写缓冲区,通常用于接收数据。:表示只读缓冲区,通常用于发送数据。

2025-01-07 22:56:59 797

原创 Boost.Asio 的 TCP 通信教程

本教程展示了一个简单的 Boost.Asio 同步 TCP 通信示例,从服务器端和客户端代码的编写到编译和运行,涵盖了关键的操作步骤。读者可以在此基础上探索更复杂的功能,如并发处理多个客户端连接或使用异步操作,以满足更高级的应用需求。

2025-01-07 22:43:36 1219

原创 C++ 虚函数、虚函数表、静态绑定与动态绑定笔记

虚函数表是 C++ 编译器实现动态绑定的核心机制。

2024-12-23 12:06:54 755

原创 自然三次样条插值推导笔记

问题情境假设我们有一组数据点(称为控制点):x0,x1,x2,…,xnx_0, x_1, x_2, \ldots, x_nx0​,x1​,x2​,…,xn​这些点是已知的,表示我们要拟合的曲线在等距离参数点(比如参数取为0,1,2,…,n)下的函数值。我们的目标是寻找一条具有足够平滑度的插值曲线,确保曲线在每一个参数节点 (i)( i )(i) 上能够满足 (p(i)=xi)( p(i) = x_i )(p(i)=xi​)。为达到光滑且自然的效果,我们希望这条曲线是由每两个相邻数据点间的一条三次

2024-12-08 22:47:30 813

原创 L-BFGS 方法实现

(Limited-memory Broyden-Fletcher-Goldfarb-Shanno) 是一种拟牛顿优化算法,适用于处理高维、无约束的优化问题,特别是可能非凸或非光滑的函数。

2024-12-08 16:17:37 1003

原创 处理海量数据的查重方法总结

在面对超出内存处理能力的大数据场景(如日志处理、大型文件去重等)时,需要设计高效的算法和系统架构。以下是针对不同场景提出的几种解决方案,包括具体实现思路及适用场景。根据实际需求和资源条件选择合适的方案。

2024-12-07 16:54:34 539

原创 迷宫路径搜索:广度优先搜索(BFS)

通过 BFS,可以高效解决迷宫路径搜索问题。其核心逻辑是逐层扩展节点,记录访问状态与前驱关系,最终反推路径。完整代码实现了从输入迷宫到输出路径的全过程,便于理解和实践。是一种在图或网格结构中逐层扩展节点的搜索算法,适合用于解决最短路径问题。

2024-12-06 21:17:09 838

原创 固定USB设备串口号

规则,可以固定USB设备的串口号,使每次设备插入时分配相同的设备名称。通过以上步骤,可以确保每次插入USB设备时,设备绑定到固定的串口号,提升开发效率和使用便利性。在Ubuntu系统中,通过创建。

2024-12-06 19:56:16 918

原创 深度优先搜索迷宫路径

我们需要编写一个程序,通过深度优先搜索(DFS)找到从迷宫左上角到右下角的一条通路。迷宫的表示:功能需求:我们使用深度优先搜索(DFS)来遍历迷宫:节点 ():迷宫 ():栈 ():输入:初始化:搜索路径:输出:关键点总结避免魔法数字:清晰的逻辑:动态分配二维数组:代码可读性高:扩展性强:输入:输出:如果路径不存在,输出:深度优先搜索(DFS)迷宫路径算法详细解释DFS 基本概念深度优先搜索(DFS)是一种用于遍历或搜索图或树结构的算法。它优先沿着每一个可能的分支路径深入,直到到达不可

2024-12-05 23:06:04 736

原创 观察者模式(Observer Pattern)

使得当一个对象的状态发生改变时,所有依赖它的对象都会收到通知并自动更新。观察者模式是一种行为型设计模式,定义了一种。

2024-12-05 22:19:19 712

原创 适配器模式(Adapter Pattern)

适配器模式是一种结构性设计模式,通过创建一个中间适配层,使得接口不兼容的类可以一起工作。

2024-12-05 21:52:12 554

原创 装饰器模式(Decorator Pattern)

装饰器模式是一种结构性设计模式,通过。:以汽车为例,实现动态添加。,而无需修改原有类。

2024-12-05 21:26:55 530

原创 代理模式(Proxy Pattern)详解

代理模式是一种结构型设计模式,通过创建代理对象来间接访问目标对象(委托类),实现对目标对象的访问控制、权限验证、延迟加载或功能增强。代理对象起到中介作用,它不仅仅是对目标对象的直接替代,还能在访问目标对象时增加一些额外的逻辑。

2024-12-05 19:46:44 794

原创 多线程编程:Atomic 原子类型与 CAS(Compare-And-Swap)

定义Atomic 是 C++ 提供的一种线程安全的类型,通过底层硬件指令(如 CAS)保证操作的原子性。所有对原子类型的操作(如加减、赋值)在多线程环境中是不可中断的。特点无需锁的线程安全不需要使用std::mutex或其他锁机制。硬件支持依赖于硬件指令集(如CAS)实现高性能原子操作。性能优越避免了线程切换和锁的上下文切换,尤其在简单场景下性能显著提升。比较共享内存中的当前值与期望值。如果相等,则将内存值更新为新值。如果不相等,则返回当前值,通常会重新尝试操作。

2024-12-04 23:42:36 1015

原创 多线程编程:线程间的同步与通信

互斥锁的作用确保线程安全,避免共享资源的并发访问导致的数据竞争。条件变量的作用线程间的同步通信,协调线程的执行顺序。核心操作std::mutex:加锁与解锁。:线程等待(wait)与通知(notify_all和notify_one生产者-消费者模型的实现使用共享队列进行数据传递。条件变量协调线程之间的依赖顺序。

2024-12-04 23:12:54 976

原创 绑定器与函数对象

是一个通用的函数封装器,可以保存任何可调用对象(普通函数、成员函数、Lambda 表达式、绑定器)。线程池是一种常用的并发编程工具,用于管理和复用固定数量的线程,避免频繁创建和销毁线程带来的性能开销。以下是如何将类成员函数绑定为任务并添加到线程池。是 C++11 引入的工具,用于将函数或成员函数与特定的参数绑定,生成一个新的。实现线程池的完整示例及细致讲解,帮助更深入理解绑定器在实际项目中的应用。线程池的核心功能是管理线程,所以需要一个容器存储所有线程的句柄。上述实现中,线程的任务是固定的(

2024-12-04 16:37:09 941

原创 右值引用与临时对象优化总结

通过右值引用优化临时对象的处理,能有效提升程序效率,是 C++11 的重要特性之一。

2024-12-02 20:46:47 759

原创 临时对象优化详细讲解与代码示例

通过移动语义优化,尤其是在涉及复杂数据类型或大规模字符串处理时,可以显著提升程序效率。,允许对象在临时状态下直接转移资源,而无需进行深拷贝。

2024-12-02 17:31:43 299

原创 C++对象构造、赋值、拷贝与析构详解

构造函数是用于初始化对象的函数,在创建对象时自动调用。

2024-12-02 16:06:45 714

原创 Git 使用问题与解决方案

文件,说明尚未配置 SSH 密钥。表示已经配置 SSH 密钥。开头,表明你正在使用。开头,表明你正在使用。SSH 密钥通常存储在。

2024-11-27 00:03:16 796

原创 Ubuntu 环境下的 C/C++ 编译与调试配置

本文档将手把手引导你完成在 Ubuntu 环境中设置 VS Code 的tasks.json和buildbuildtasks.jsong++将你的源代码放入src目录,例如创建一个简单的main.cpptasks.json。

2024-11-26 15:31:09 695

原创 二进制编码与哈夫曼编码详解笔记

二进制编码是将数据表示为。

2024-11-26 14:28:19 900

原创 使用虚拟环境管理 Python 项目依赖

虚拟环境是 Python 项目开发中不可或缺的工具,能够有效管理项目依赖,提供开发灵活性和稳定性。通过上述步骤,你可以轻松创建、使用和管理虚拟环境,为你的项目开发打下坚实基础。在项目开发中,管理 Python 版本和依赖是至关重要的,尤其是在多项目环境下。,可以有效隔离不同项目的依赖,避免全局环境冲突,从而提高开发效率和维护性。运行过程中,脚本会使用虚拟环境中的 Python 解释器和依赖。在虚拟环境中,运行项目脚本的方法与全局环境一致。运行此命令后,命令行将不再显示虚拟环境的名称。

2024-11-25 14:39:40 970

原创 无人机路径规划的 动态窗口法 (DWA)

动态窗口是速度、加速度和障碍物限制下的速度取值范围。

2024-11-21 11:32:39 330

原创 GitHub生成SSH密钥,

生成并配置SSH密钥将公钥添加到GitHub账户。测试SSH连接确保可以与GitHub通信。克隆仓库,即便是别人的公开仓库,照以下步骤生成SSH密钥,并将公钥添加到GitHub账户中:这个错误是由于SSH密钥未正确配置或未添加到GitHub账户中导致的。GitHub通过SSH进行身份验证时,需要确保本地机器的SSH公钥已经被添加到你的GitHub账户中。

2024-10-14 21:49:02 577

原创 计算机网络第二章:作业 2: UDP ping 程序

在这个实验中,你将通过Python使用UDP套接字编程,编写一个ping程序。Ping程序是用来测试网络延迟的工具,客户端通过发送请求到服务器,然后计算往返时间(RTT),并处理可能的丢包。客户端程序需要在发送10次Ping请求后计算最小、最大和平均RTT,同时计算丢包率。通过这些修改,客户端程序在完成所有Ping操作后,会输出最小、最大和平均RTT,并计算出丢包率。我们现在需要编写客户端程序,它将向服务器发送10个ping请求,并显示每次请求的结果,包括往返时间或超时。

2024-09-19 14:15:03 1006 1

原创 计算机网络第二章:作业 1: Web 服务器

通过本次实验,我们实现了一个简单的Python Web服务器,并学会了如何使用套接字来处理HTTP请求。构建了Web服务器处理HTTP请求。实现了文件读取及HTTP响应功能。处理了404错误的情况。使用浏览器测试了服务器的功能,并成功获取文件内容以及处理不存在的文件。

2024-09-18 18:19:23 1207

原创 计算机网络第二章(部分)

网络体系结构描述了整个网络如何组织、分层以及每一层的功能和协议。最常见的网络体系结构是,其分为物理层、链路层、网络层、传输层和应用层。:应用程序体系结构专注于应用程序如何设计和组织,如客户端-服务器架构、P2P(对等网络)架构等。应用程序体系结构决定了应用程序各个部分如何相互通信和协作。简而言之,关注于数据如何在网络上传输,而则关注应用程序的设计与交互模式。通常,客户进程主动向服务器进程发送请求,服务器进程被动等待客户进程的连接。通过组合使用和,一个进程可以唯一地标识和定位另一台主机上的进程。

2024-09-18 18:06:26 1957 1

原创 ubuntu使用Vscode进行实现TCP编程

在Ubuntu上使用VSCode实现TCP编程的完整流程包括安装必要的工具、编写TCP客户端和服务器代码、编译和运行程序。这里将介绍如何使用Python或C语言编写简单的TCP客户端和服务器,并在VSCode上运行。

2024-09-18 16:42:23 1154

空空如也

空空如也

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

TA关注的人

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