- 博客(691)
- 资源 (2)
- 收藏
- 关注
原创 C++之指针探究(三):指针数组和数组指针
前文:C++之指针探究(二):一级指针和一维数组一. 指针数组或:指针数组的本质是数组,数组中每一个成员是一个指针。定义形式如下: char∗\ast∗ pArray[10];语法解析:pArray 先与“[ ]”结合,构成一个数组的定义,char∗\ast∗修饰的是数组的内容,即数组的每个元素。例4:运行结果:附例4代码//小问学编程#include <iostream>using namespace std;int main(){ char* pArr
2020-12-26 18:55:14 237
原创 C++笔记之智能指针shared_ptr和unique_ptr的初始化方法
优先使用和:提供更好的异常安全性和性能。避免直接使用new:除非有特殊需求,例如自定义删除器。注意所有权的转移和共享不能复制,但可以移动,表示唯一所有权。可以复制,表示共享所有权。避免重复管理同一原始指针:不要在多个智能指针中包装同一个原始指针,以防止重复释放导致未定义行为。示例代码public:MyClass() { std::cout
2024-11-03 15:10:00 18
原创 Python笔记之线程库threading
i } ") # 实例化并启动自定义线程 thread = MyThread() thread . start() thread . join()i } ") # 实例化并启动自定义线程 thread = MyThread() thread . start() thread . join()i } ") # 实例化并启动自定义线程 thread = MyThread() thread . start() thread . join()
2024-11-02 21:05:01 236
原创 PlantUML绘制C++类图
我在网上看到很多博文中使用plantUML绘制的C++类关系图,颜色主题都是黄色的,为什么我使用https://www.plantuml.com/plantuml/uml/在线运行去绘制PlantUML或使用vscode的PlantUML插件去绘制,主题颜色都不是黄色的,而是一种淡灰蓝色,例如附件中这种plantUML的主题颜色如何设置。或在VSCode中设置PlantUML:Jar路径为你的PlantUML.jar文件。如果你的PlantUML图形中包含中文字符,可能需要配置字体以正确显示中文。
2024-10-28 00:18:27 659
原创 ROS笔记之kill掉所有ros节点rosnode
安装 psmisc 包:killall 通常包含在 psmisc 包中。正常情况下,这个命令不会返回任何节点。这个命令会发送终止信号给所有已注册的 ROS 节点,但不会影响。是 ROS 系统中的主节点,负责协调其他节点的通信。是一个命令,它启动了 ROS 系统的核心组件,包括。(ROS Master)、参数服务器和日志节点等。可以看作是一个启动脚本,用于启动。替换为进程的实际进程号。以及其他必要的服务。
2024-10-20 20:30:44 427
原创 Linux笔记之文件查找和搜索命令which,find,locate,whereis总结
但是新建的文件,由于没有马上同步到LINUX文件数据库里,这样,刚新建的文件通过locate可能查找不到,需要用updatedb手动执行同步,或者待LINUX系统自动执行任务后才可以找到。locate 适合简单快速的文件定位。搜索范围:which 只在 PATH 中搜索,而 whereis 在系统目录中搜索。准确性:find 更准确实时,locate 依赖于数据库的更新频率。附:locate命令查找文件是通过LINUX文件数据库去查找,速度:locate 更快,find 相对较慢。
2024-10-20 19:54:34 423
原创 C++笔记之静态多态和动态多态
静态多态又称编译时多态,指的是在编译期间确定具体调用哪个函数或方法。C++中实现静态多态的常用方式包括函数重载(Function Overloading)、运算符重载(Operator Overloading)和模板(Templates)。动态多态又称运行时多态,指的是在运行时决定具体调用哪个函数或方法。C++中通过继承(Inheritance)和虚函数(Virtual Functions)来实现动态多态。
2024-10-17 23:01:05 248
原创 C++笔记之类三种的继承方式
私有继承主要用于实现“is-implemented-in-terms-of”关系。通过选择不同的继承方式,可以控制对象的可访问性和转换能力。但是在派生类的成员函数或派生类的派生类中可以访问基类。这是最常见的继承方式,用于实现“is-a”关系。子类对象不能在类外部隐式转换为基类对象。子类对象可以隐式转换为基类对象。子类对象不能隐式转换为基类对象。
2024-10-14 23:58:52 113
原创 C++笔记之原子操作
在 C++ 中,原子类型提供了对共享变量的无锁操作,确保多线程环境下的安全。这些是 C++ 中原子操作的一些基本用法,确保在多线程编程中安全地操作共享数据。是一个原子操作,用于将一个新的值赋给原子对象,并返回该对象的旧值。这两个函数用于比较并交换值。可以直接初始化原子类型,使用标准库中的。经常用于循环中,以处理可能的伪失败。假设有两个相同类型的原子变量。
2024-10-08 01:26:50 234
原创 Python笔记之识别到当前python脚本所在的目录,而不是执行python命令的目录
这样可以确保得到的是脚本文件所在的目录,而不是执行命令的目录。替换为要拼接的目录名即可。这样可以确保路径的拼接是跨平台的。要在Python脚本中识别到脚本所在的目录,可以使用。要在脚本所在的目录后面拼接下一层目录,可以使用。来获取脚本的绝对路径,然后用。
2024-10-08 00:28:37 343
原创 C++笔记之标准库和boost库中bind占位符_1的写法差异
在C++中,_1和_1: 通常用于使用Boost.Bind时的占位符。在使用Boost库时,可能会看到这种用法。: 这是C++11标准库中的占位符,用于std::bind。C++11引入了标准库版本的bind,因此需要使用命名空间中的占位符。
2024-10-05 17:07:29 183
原创 工具笔记之生成图表和可视化的标记语言Mermaid
Mermaid 是一种用于生成图表和可视化的标记语言。它允许用户以简单的文本格式创建复杂的图表。Mermaid 可以集成到 Markdown 文件中,使用工具如 VSCode 的扩展插件或在线工具来预览图表。+String 名字。+String 品种。
2024-10-02 18:32:14 850
原创 git笔记之重置本地仓库所有分支和远程保持一致、工作区恢复干净,像刚clone下来一样
在运行此脚本之前,请确保了解它的作用,并且备份重要数据,因为这将删除任何未提交的更改,并将本地仓库状态重置为与远程仓库完全一致。此外,如果有未推送的本地分支,这些分支不会被处理,除非它们也在远程存在并且被跟踪。要让本地仓库的所有分支都重置到与远程完全一致的状态,可以使用以下脚本。这样,脚本就能确保每个本地分支都与远程仓库保持完全一致。操作可能会基于过时的信息进行。以下是修改后的脚本,添加了。
2024-09-23 23:31:51 619
原创 git笔记之在多个分支中复用某个分支提交的更改
是一个 Git 命令,用于将某个提交(或多个提交)的更改从一个分支复制到另一个分支。它的主要用途是选择性地应用特定的提交,而不需要合并整个分支。会尝试将指定的提交(包含新文件的提交)应用到目标分支上。如果新文件在目标分支中不存在,因此,这个脚本可以应用包含新文件的提交,但在冲突的情况下需要额外的手动干预。:在运行脚本之前,请确保工作树和索引中没有未提交的更改,以避免冲突或混乱。:如果目标分支中有与新文件同名的文件,或者其他更改导致冲突,这样,分支 B 就会包含在 A 上的特定更改。
2024-09-23 23:26:44 530
原创 qt-C++笔记之Q_DECLARE_METATYPE和qRegisterMetaType
code review! 是一个 Qt 宏,用于注册某种类型以便在 Qt 的元对象系统中使用。注册后的类型可以在 Qt 的信号和槽机制中使用,特别是当类型作为信号参数传递时。这对于非Qt内建类型来说尤其重要,因为 Qt 的元对象系统需要额外的信息来处理这些类型。声明自定义类型:首先需要创建一个自定义类型。例如:使用 :在全局命名空间中使用这个宏来声明自定义类型:注册类型:为了使 QVariant 能够处理这个自定义类型,还需要在程序的某个地方注册它:应用场景信号和槽: 如果想在信号和槽
2024-09-22 19:23:06 1129
原创 qt-C++笔记之作用等同的宏和关键字
的引入主要是为了提高代码的可读性和一致性,避免关键字冲,特别是在那些。可能与其他语义冲突的环境中(如某些编译器或代码分析工具可能不识别。被推荐使用,尽管在实际的 Qt 源代码中。是 Qt 中用于发射信号的宏,其作用等同于。为什么使用 Q_EMIT 而不是 emit?在 Qt 的官方文档和推荐的编码风格中,
2024-09-22 19:15:14 628
原创 C++笔记之类间传参的方法
定义一个全局函数,该函数接受一个类的对象作为参数,并在函数内部调用另一个类的方法,将参数传递给该方法。定义一个全局变量,在一个类中设置该变量的值,然后在另一个类中访问该变量的值。将其中一个类设计为单例类,提供一个静态方法来获取该类的唯一实例。在另一个类中,通过调用单例类的静态方法来获取实例,并调用实例的方法传递参数。定义一个中介者类,该类知晓两个类的存在,并提供方法来协调它们之间的交互。两个类都持有中介者类的指针或引用,并通过中介者类来传递参数。一个类作为被观察者,另一个类作为观察者。
2024-09-17 00:56:54 329
原创 C++笔记之子类初始化时父类带参构造函数的处理、父子类中模板参数的传递
在 C++ 中,当子类继承父类时,子类的初始化通常包括调用父类的构造函数。在子类的构造函数初始化列表中,可以指定调用哪个父类的构造函数。这个机制确保父类部分在子类构造之前被正确初始化。在 C++ 中,子类必须调用父类的某个构造函数。如果父类只有带参数的构造函数,子类就必须在初始化列表中显式调用它,否则编译会失败。如果父类有默认构造函数(无参数构造函数),子类可以不显式调用父类的构造函数,编译器会自动调用默认构造函数。
2024-09-15 14:20:14 278
原创 C++笔记之std::map的实用操作
的所有键和值,可以使用一个循环遍历每个键值对。在 C++ 中,你可以使用多种方式初始化。这种方法会清空原有内容,然后插入新元素。中的每个键值对,并检查每个值是否为。,并打印每个键和值。
2024-09-10 23:42:55 324
原创 ROS笔记之在指定目录及其子目录中查找包含特定ROS话题的bag文件,并输出这些文件的路径
【代码】ROS笔记之在指定目录及其子目录中查找包含特定ROS话题的bag文件,并输出这些文件的路径。
2024-09-08 23:48:28 347
原创 C++笔记之在基类和派生类之间进行类型转换的所有方法
使用时,注重安全性和类型检查,适用于不确定类型的向下转换。使用时,更关注性能和已知的类型转换,适合明确知道转换是安全的场景。
2024-08-25 02:41:21 166
原创 qt笔记之qml中的TextEdit、TextInput、TextArea、TextField的区别
在Qt C++环境中,这四个组件并没有直接对应的类。在Qt C++中,可以根据需求选择合适的控件来实现相应的功能。每个组件都有其特定的用途,选择时应根据使用场景需求来决定。
2024-08-17 23:28:55 633
原创 qt笔记之纯qml项目详解
在 Qt 中,确实可以创建纯 QML 项目。纯 QML 项目主要用于构建基于 QML 的 UI,而无需 C++ 代码。点击“运行”按钮,Qt Creator 将会启动应用程序,并显示一个窗口,上面写着“Hello, QML!文件是用于 Qt Quick 应用程序的用户界面文件,通常使用 Qt Creator 来编辑和设计。这些文件是为 Qt Widgets 应用程序设计的用户界面文件,使用 XML 格式。如果使用自定义模块,可以在这个文件中指定模块路径。但对于简单项目,这个文件可以是空的。
2024-08-17 22:57:57 1156
原创 OpenGL笔记十六之视图变换矩阵实验-lookAt函数
—— 2024-07-30 晚上 函数是 OpenGL 数学库 GLM (OpenGL Mathematics) 中用于生成视图矩阵的函数。视图矩阵通常用于将世界坐标系转换为视图坐标系,从而模拟摄像机的视角。 函数定义如下 函数是 OpenGL 数学库 GLM (OpenGL Mathematics) 中用于生成视图矩阵的函数。视图矩阵通常用于将世界坐标系转换为视图坐标系,从而模拟摄像机的视角。 函数定义如下:参数详解eye: 摄像机的位置,即视点 (View Position)。center: 摄
2024-07-31 00:01:12 1268
原创 qt-C++笔记之多线程架构模式:让信号监听处理线程除了while循环方法外一直活着的方法(除了while循环外让线程一直活着的方法)
code review!代码2.Qt C++环境2.1.例一:信号发射者和信号接收者在不同的类中代码2.2.例二:信号发射者和信号接收者在同一个类中代码2.3.例二更改:不使用QTimer::singleShot(1000, this, &MyObject::emitSignal);,直接写一个while循环然后在循环中emit triggerSignal();4.补充笔记4.1.Qt C++环境中moveTothread()函数和thread->start()这两个函数相当于纯C++环
2024-07-29 18:31:53 371
原创 qt-C++笔记之使用qDebug().noquote()优美地格式化打印json
在Qt中,可以使用和来处理和格式化JSON数据。为了优美地格式化打印JSON数据,可以使用方法,并将其结果传递给进行输出。
2024-07-22 01:08:04 723
原创 Python笔记之正则表达式模块`re`模块中的`re.search`与`re.match`的区别
re.search:在整个字符串中查找模式,只要字符串中包含匹配项即可。re.match:必须在字符串的起始位置匹配模式,如果起始位置不匹配则返回None。
2024-07-21 22:39:51 548
原创 Linux笔记之shell终端命令后显示指定行数的grep和head
在Linux中,grep命令和head命令常用于文本处理。grep命令用于搜索文本中的特定模式,而head命令用于显示文件的开头部分。了解如何结合这两个命令(例如使用管道)可以帮助你更高效地处理和查看文本数据。grep -A选项用于在匹配到的行之后显示指定数量的行。例如,将显示匹配到的行及其后面的三行。选项用于显示文件的前n行。例如,将显示file.txt的前五行。
2024-07-14 02:05:00 759
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人