- 博客(59)
- 资源 (3)
- 问答 (27)
- 收藏
- 关注
原创 【C++面试题】深拷贝/浅拷贝
对于普通数据类型(基础类型如intdoubleboolchar以及不包含指针的简单structclass),深拷贝和浅拷贝没有任何区别。
2025-12-31 09:28:17
146
原创 【C++笔试题】递归判断数组是否是递增数组
递归判断长度为N的数组是不是递增数组。递归方法:记录最大的值,如果比这个值大,则继续,否则终止.这里参数已经给出,所以我们要明确的是,参数更新的逻辑。一个是递归函数fun(a, N - 1)检查数组最后两个元素之间的大小关系。下一次传入的参数应该是N-1。3.明确单层递归的逻辑。另一个是大小判断逻辑。
2025-12-30 12:05:28
177
原创 vector学习笔记
栈的大小通常只有几 MB(例如 8MB)。如果你试图在栈上创建一个巨大的数组(比如。(运行时自动调整),vector更重要的一点是能自动管理内存。是存在迭代器失效现象,补充一下vector迭代器失效的几种情况。把数据放在堆上,所以它可以容纳成千上万个元素,而且可以。:堆的大小仅受物理内存限制(几个 GB 甚至 TB)。它是一个在栈上的控制者,管理着在堆上的数据。如果运行下面的程序,会出现段错误。当超出作用域时,栈上的。:虽然数据在堆上(正常需要手动。这也是RAII机制的体现。距离很近,都在堆上。
2025-12-26 21:00:22
457
原创 OpenMP学习笔记
完成后,线程组合并(join)到一起,除主线程以外的所有线程都被“销毁”,主线程继续并执行程序的顺序部分。之后,主线程可能会看到又一个有利于并行执行的代码块。然后,它将创建一个新的可能会有不同数量的线程组,并继续一个新的并行区域,直到线程组完成工作之后再合并。在这个 1 亿次的循环中,CPU 核心把大量时间花在了争抢缓存行的所有权(Cache Coherency 协议,如 MESI)上,而不是在做计算。其实就是按照顺序分块,一个块给一个线程执行,例如,线程 0 处理前半部分,线程 1 处理后半部分。
2025-12-23 14:34:47
581
原创 C++中不能复制只能移动的类型
当你设计一个 C++ 类时,如果这个类管理着一个无法安全共享禁用拷贝构造函数和拷贝赋值运算符(C++11/14/17 通常使用= delete实现移动构造函数和移动赋值运算符(将底层资源指针/句柄从源对象转移到目标对象,并清空源对象)。通过这种设计,C++ 编译器强制执行了资源所有权的转移,保证了资源的生命周期安全,这是现代 C++ 编程中一个重要的设计范式。
2025-12-16 22:27:17
341
原创 C++多线程并发学习路线
对象销毁前没有 join 或 detach 会导致程序崩溃 (terminate)。,用于线程间的通信(例如:生产者-消费者模型)。有时候你不需要管理原始线程,只需要结果。(对于简单的整数加减,比锁快得多)。主线程与子线程的关系。多线程最难的地方不是开启线程,而是。(最简单的多线程启动方式)。避免频繁创建销毁线程的开销。如何避免多个锁互相等待。如果不加控制,就会发生。(自动 join),这是起点,你需要熟悉。
2025-12-08 20:18:01
347
原创 spdlog日志库
它会持续将日志追加到同一个文件中,直到文件系统达到最大容量或程序被手动终止。但这可能导致日志文件会无限制增大。日志级别:trace < debug < info < warn < error < critical。查看上述文件夹中的内容可知: rotating.txt中是最新写入的内容。3中是最早写入的内容。设置级别之后,低级别的日志会被自动过滤。logger:日志记录器。sink:日志接收器。
2025-08-21 15:37:23
517
原创 Git用法记录
>>>>>> [commit哈希] 标记从其他分支合并过来的新代码(这里的 c472b4b... 是提交哈希)<<<<<<< HEAD 标记当前分支(或本地)的旧代码。======= 作为分隔线。
2025-08-03 11:48:15
219
原创 gcc g++ makefile CMakeLists.txt cmake make 的关系
写代码 → 写CMakeLists.txt → cmake生成Makefile → make编译 → 得到可执行文件。定义编译规则、依赖关系和构建目标。可以手动编写,也可以由CMakeLists.txt自动生成。构建工具,执行Makefile中定义的构建规则(调用gcc/g++来完成实际编译工作)写代码 → 写Makefile→ 直接用make编译 → 得到可执行文件。读取CMakeLists.txt文件,生成Makefile。
2025-08-01 19:15:47
244
2
原创 【QT报错】程序异常结束或读取不到配置文件的原因
应该把.dll文件直接放在.exe同一个目录下,而不是把包含.dll文件的文件夹放在.exe同一个目录下。排除代码错误之后,发现是链接库的问题。
2025-07-15 15:49:05
500
原创 RPC/gRPC入门学习
RPC = Remote Procedure Call, 即远程过程调用,是一种构建分布式、基于客户端-服务器的协议。RPC允许开发人员使用函数调用的方式而非网络细节的方式,简化了网络的复杂性,从而促进了将软件分布在不同系统上的过程。RPC的工作原理是允许一个程序(客户端)直接调用另一台机器(服务器)上的程序(函数)。当进行RPC调用时,调用参数会被打包并通过网络传输到服务器,服务器会解包这些参数,执行所需的程序,并将结果返回给客户端。1.
2025-07-06 16:23:57
520
原创 QT报错:Corrupt JPEG data: premature end of data segment
打开电脑自带的相机软件,发现同样花屏。用的是USB相机,拔下USB接口重连,问题解决。QT出现这个问题,并且显示的照片是花的。
2025-06-25 20:38:21
276
原创 QT 查找引用
1.点击Find References to Symbol Under Cursor。我发现我的QT查找引用之后,不直接显示引用的地方,还要多一步操作。
2025-06-18 10:48:00
258
原创 IP地址和子网掩码
IP 地址由 “网络部分” 和 “主机部分” 组成,例如10.16.12.34。子网掩码决定了哪部分是网络地址,哪部分是主机地址。子网掩码255.255.255.0(即/24)表示:前 24 位是网络地址(10.16.12),后 8 位是主机地址(34)子网掩码255.255.0.0(/16)表示前 16 位是网络地址(10.16),后 16 位(12.34)是主机地址。
2025-06-16 10:02:45
211
原创 【QT】JSON数据格式
JSON是一种轻量级数据交换格式,其文本格式完全独立于其他编程语言来进行数据的存储、分类与显示,被目前国内主流的物联网平台所广泛采用。JSON保留了C语言家族的编程习惯,支持多种服务端语言。键key 必须是字符串,值value 可以是字符串, 数字, 对象, 数组, 布尔值或 null。一个JSON对象包含多个。
2025-06-11 11:04:44
231
原创 【QT】websocket记录
Qt 中,使用 QWebSocket 类来创建 WebSocket 客户端,并通过 connectToServer 方法连接到服务器。只需要提供服务器的 URL(包括 IP 地址和端口),而不需要关心客户端的 IP 和端口。
2025-06-08 15:40:57
154
原创 qt局部事件循环使用步骤
事件循环:在事件循环中,不断获取下一个事件然后处理。事件放在事件队列中,从事件队列中取出对应的事件进行处理。(3) 编写收到某个响应后退出事件循环的程序。如qt接收到某个信号后可退出事件循环。上述步骤是一个同步操作,会一直执行事件循环,直到某个事件触发退出事件循环的函数。一般在非主线程中设置局部事件循环,不会阻塞主线程。(1) 定义一个事件循环。(4) 开始事件循环。
2025-06-03 20:50:12
219
原创 【QT】理解QT机制之“元对象系统”
如果在基类中声明了虚函数,并在派生类中重写了这些虚函数,当基类指针或引用指向派生类对象并调用虚函数时,会根据对象的实际类型而不是指针类型来确定调用的函数。例如,下面这段程序,main函数中,父类指针指向派生类对象。父类Parent中的come被声明为虚函数,在main函数中,虽然指向两个派生类对象的是父类指针,但是运行时还是调用派生类中的come()函数。输出:但是如何判断基类指针到底指向的那个对象呢?这就用到了RTTI机制。RTTI提供了两个非常有用的操作符:dynamic_cast和typeid。
2025-05-29 21:17:17
2113
原创 什么是系统调用
系统调用是一种编程方式,计算机程序通过这种方式向执行它的操作系统内核请求服务。系统调用是程序与操作系统交互的一种方式。计算机程序在请求操作系统内核时进行系统调用。系统调用通过应用程序接口(API)向用户程序提供操作系统的服务。系统调用是进入内核系统的唯一入口点,并且在内核模式下执行。
2025-05-29 15:31:52
354
原创 【ORB-SLAM3】CreateNewKeyFrame()函数阅读
表示构造一个关键帧需要的参数为:Frame类型的当前帧:mCurrentFrame;从代码的角度看,通过构造关键帧,将普通帧 mCurrentFrame 携带的信息复制给 关键帧pKF。①如果这个点对应在上一帧中的地图点没有, 或者创建后就没有被观测到,那么就需要生成一个临时的地图点。④停止生成地图点的条件:当前的点的深度已经超过了设定的深度阈值(35倍基线)&& nPoints已经超过100个点,说明距离比较远了,可能不准确,停掉退出。的特征点,深度值无效或为负的点会被过滤,并存储为。
2025-05-15 21:01:42
916
原创 【动态slam】C++使用yolo模型核心代码学习
对于slam调用yolo,我只在一些比较早的项目(yolov3,yolov5)里看到有用这种方法的。其实,从OpenCV模拟张量的方式,我们就可以看出,张量,简单说,就是一个多维的信息(这里是三维)、多层的矩阵,如图所示。文件,也有一些项目使用的是darknet架构的yolo,可以用opencv的dnn模块加载.weights和.cfg文件。在 YoloDetect.h中,定义一个存储cv::Rect2i对象的数组,用于存储动态物体检测框的坐标。①检测框的编号,也就是我们需要遍历图片中的每一个检测框。
2025-05-12 20:55:45
1215
2
原创 【QT】UDP通讯调试
3、 打开网络调试助手,自动检测到本机的ip地址,输入任意一个和程序里不一样的端口号。1、终端输入ipconfig查看本机网卡的ipv4地址。2、 用udpBind函数,绑定到此ip和端口号。qt已经写好了udp通讯代码,现在要进行测试。发送数据:输入目标地址和端口号。
2025-05-11 20:54:12
872
2
原创 【DS-SLAM】运动一致性检测 -----------源码阅读
运动一致性检测是Frame.cc的Frame::ProcessMovingObject(const cv::Mat &imgray)函数。(2) RANSANC求基础矩阵并去除外点,然后去除不符合对极约束的点。就是DS-SLAM流程图Moving consistency的部分。(3) 把不符合对极约束的点用蓝色表示。(1)光流跟踪效果。
2025-04-17 21:53:08
283
2
原创 ubuntu20.04有亮度调节条但是调节时亮度不变
尝试了修改grub文件,没有作用,下载了brightness-controllor,问题解决了。之后在应用软件中找到brightness-controller,即可调节亮度。
2025-01-20 14:48:56
767
1
原创 leetcode周赛-3379. 转换数组
正数:result[i]=nums[(i+(nums[i]%n))%n];-------->推广到:result[i]=nums[(i+(nums[i]%n+n))%n];我是fw,区分正负、处理溢出,花了很长时间,经过复盘才发现,当nums[i]为负数的时候,比如是-k,那么需要左移k步,那么其实就相当于右移动n-k步。是循环数组,向右移动超过最后一个元素时将回到开头,向左移动超过第一个元素时将回到末尾。,它表示一个循环数组。请你遵循以下规则创建一个大小。
2024-12-10 22:16:30
434
原创 基础知识补充
3000 RPM 表示每分钟旋转3000次,即每秒旋转50次(3000 / 60 = 50)。50 Hz(赫兹)表示每秒发生50次周期性事件。50 FPS 表示每秒钟显示或处理50帧图像。
2024-12-06 22:41:51
191
原创 【orb-slam3】rgbd_tum.cc解读
这些分别是main函数的参数argv[0]~argv[4]这是orb-slam3运行rgbd_tum数据集的主程序。检查图像是否为空,缩放图像。我们会输入以下命令运行文件。
2024-11-20 20:56:15
536
原创 【文件管理】Windows下 批量重命名文件【bat实现】-两个小问题
在txt文件后边加一行“PAUSE”之后再生成.bat,发现是因为文件名中文乱码,导致找不到文件。这是因为我在文件夹用右键打开的——“在终端运行”,正确的方式是在搜索栏输入cmd打开命令行。解决方式:生成.bat的时候,在窗口里选择编码方式——GB18030。
2024-09-22 19:23:18
1171
3
原创 【slam】YOLO-SLAM编译:假设 ‘Numerator <= Denominator && “Probability cannot be bigger than 1!“’ 失败。
先记录一下,还没找到解决办法。
2024-07-31 18:59:49
526
4
原创 【slam】slam移植后编译报错
我已经把版本改成pcl-1.8,但总是报这个错说找不到以前设置的文件夹路径。后来把Cmakecache.txt删掉就好了。编译移植后的slam出现上述问题。
2024-07-31 15:11:38
181
ROS进行cmake的时候显示缺少srospy怎么办。(标签-ar|关键词-file)
2022-04-11
matlab波浪号是什麽意思
2022-04-23
rostopic中为什么不显示我发布的话题
2022-05-12
if后边有个逗号,程序怎么执行呢
2022-05-13
rviz雷达扫描的地图和map组件加载的图位置有偏移怎么办?
2022-05-14
xml文件看看哪里错了
2022-05-08
Gazebo9没有libgazebo_ros_diff_drive.so文件
2022-05-11
gazebo不显示机器人模型,只显示空的世界环境。
2022-05-08
ROS启动rviz的时候出现这个提示是怎么回事?
2022-05-07
C++ include 包含和上三级文件夹同级别的文件的下三级文件怎么办
2022-04-26
t=linspace(0,1,n2)'; 为什么加个引号
2022-04-23
matlab这一句什么意思
2022-04-08
matlab 二维数组里放两个坐标什么意思
2022-04-07
matlab plot函数在这里怎么用的
2022-04-06
matlab已知树结构中的数值,怎么对他们进行三次样条插值?
2022-04-06
QT为什么UDP接收一次就程序崩溃了
2025-06-27
QT,UDP接收程序崩溃
2025-06-27
QT是只能跳转到函数定义吗
2025-06-17
QT捕获图片实现循环捕获的同时单独捕获
2025-06-05
QT信号槽连接的时候出现错误
2025-06-03
TCP socket的nextConnectionPending问题
2025-05-27
编写opencv程序时,关于opencv的头文件标红怎么办
2025-01-03
ORB-slam3怎么获得每个线程的运行时间??
2024-08-01
求详细解释C++这个函数的参数含义
2022-05-19
C++这一句啥意思呀std::pair<double, double> p_n;
2022-05-17
ubuntu里边的home/username/.gazebo文件夹不显示
2022-05-26
C++这一句什么意思 int rand_nu = rand()%10;
2022-05-17
VSCODE2019怎么打开某个函数
2022-05-17
ROS路径规划C++代码这一句什么意思
2022-05-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅