自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [C++] QTimer与Qt事件循环机制 实验探究

之前在学Qt的的时候,老是搞不清楚Qt什么时候做耗时操作会导致UI阻塞什么时候又不会。本文通过记录学Qt时的一个小实验来探索Qt背后的核心机制—事件循环。本文代码仓库为,具体代码版本为,如果我的代码对您学习Qt、完成课程作业等有些许帮助的话,还请对该仓库点一个star,祝您生活愉快。

2025-12-03 20:44:13 1035

原创 [C++ ]qt槽函数及其线程机制

摘要:本文通过实验探讨Qt槽函数的线程机制。实验设计两个按钮分别触发奇数/偶数入队槽函数和一个出队槽函数,通过观察队列输出顺序发现槽函数是按连接顺序依次执行的单线程机制。结果表明Qt默认在主线程顺序执行槽函数,其内部使用有序连接列表管理信号-槽绑定,确保执行顺序与连接顺序一致。这一机制与Qt的单线程UI设计原则相关,避免并发操作导致的界面问题。多线程场景需显式创建线程并处理跨线程信号。

2025-11-30 23:07:32 607

原创 [C++] 上锁、解锁、获取锁、释放锁的区别

本文梳理了多线程编程中锁机制的核心概念。文章首先解释了"上锁"、"解锁"、"获得锁"和"释放锁"的区别,指出"获得锁"应理解为"获得通行证"而非被阻塞。通过lock_guard示例代码,说明了锁的生命周期:构造时上锁→获取锁→持有锁期间访问共享数据→析构时解锁→释放锁。特别强调锁机制在获得前是"锁自己",获得后就转为"锁其他线程"。这种理解方式有助于

2025-11-30 22:45:40 462

原创 [C++] lock_guard、unique_lock与条件变量wait()函数

本文比较了C++中lock_guard和unique_lock的核心区别及其应用场景。lock_guard是轻量级的RAII锁,构造时上锁、析构时解锁,不能手动解锁;unique_lock更灵活,支持随时解锁/重新上锁。关键区别在于condition_variable::wait()必须使用unique_lock,因为wait()内部需要先解锁让其他线程修改共享状态,再重新上锁,而lock_guard无法实现这一过程。应用场景建议:简单临界区用lock_guard;条件变量等待、延迟锁定等复杂场景必须用un

2025-11-30 21:53:50 273

原创 C++ 类成员变量声明语法错误

本文讨论了C++类成员变量初始化时的语法问题。在C++11之前,类内初始化仅支持= value语法;C++11引入花括号和圆括号初始化,但圆括号可能与函数声明产生歧义。文章通过示例展示了错误用法(SyncQueue<int> sq(1000))和两种正确解决方案:1) 使用花括号初始化SyncQueue<int> sq{1000};2) 在头文件中声明变量,在源文件构造函数初始化列表中初始化。特别提醒在Qt 5.11中遇到此类问题时可采用这些解决方案。

2025-11-30 20:59:01 228

原创 【C字符串与内存布局探索实验】

C字符串与内存布局实验分析摘要 通过实验探讨了C字符串的内存布局特性。实验表明: C字符串以'\0'为终止符,人为修改会导致输出异常 数组内存相邻时,破坏终止符会导致连续输出相邻内存内容 单独函数中修改终止符会产生不可控输出 内存布局分析显示栈空间由高向低增长,解释了相邻变量的输出现象 介绍了Linux/x86下的内存分段机制,包括代码段、数据段

2025-11-13 18:09:37 816

原创 【ROS2】 忽略局域网多机通信导致数据接收的bug

本地记录一次ros2开发中的bug纠错。之前系统地学习过ros1,由于ros1中需要实现多机通信需要配置,现在正在做一个ros2的项目,也没有怎么学就直接上阵了,还不知道ros2无需配置就可以实现局域网内多机通信,所以导致了如下的离谱bug。ros2中 接收数据异常,订阅一辆小车的位姿会出现在两点反复跳跃,小车不受控制等等bug,甚至可能出现明明本地什么ros节点都没有启动,但是却能使用ros2 topic list查看到一大堆话题。

2025-08-26 11:02:07 676

原创 C++ AOV 拓扑排序

本文主要记录AOV算法的实现。图论中将图分为有向图与无向图,同时还可以根据是否有回路分为有环图与无环图。软考中级经常会考到若干关于工期的安排问题:上面的图就是一个有向无环图(DAG)

2025-08-24 19:51:43 314

原创 vscode ssh远程连接ubuntu20失败的解决方法

本文记录 vscode远程连接ubuntu20云服务器,由于vscode版本太高or ubuntu20 GLIBC版本过低 导致连接失败的解决办法。

2025-06-30 17:41:54 436

原创 【Linux实训课程讲义 适用于教授Linux初学者的教学老师】

Linux基础入门指南 本文是Linux实训课程讲义,针对Linux初学者和教学老师提供系统介绍。内容包括: Linux基础概念:介绍Linux操作系统起源、特点及与Windows的区别; 主要发行版本:说明不同Linux发行版之间的关系; 文件系统详解:对比Linux与Windows文件系统的差异,包括目录结构、权限管理、命名规则等; 核心目录功能:解释根目录下/bin、/etc、/home等关键目录的作用; 基本操作指南:涵盖文件系统挂载/卸载等基础操作。 内容简洁明了,适合作为Linux入门教学参考材

2025-06-21 14:34:41 1086

原创 [Ubuntu] 记录系统崩掉进入initramfs模式后的解决方法

上图中提示我要修改sata的模式,然后我打开我Dell G3 3590一看对应的,果然是在RAID On选项上,然后直接修改,成功重启!数据也全部都还在,爽!本文主要记录我自己Dell G3 3590老电脑的Ubuntu系统挂掉的解决记录,仅为记录。不详细纠察原因,与网上的解决方法十分不同。本来已经打算重装系统啦,但是在重装的时候看到了一篇这样的博客。大致的意思就是我的ubuntu识别不到文件系统了。

2025-02-25 22:25:46 1074 1

原创 【Linux】Ubuntu中,如何创建软件的快捷方式放到桌面上

首先进入到/usr/share/applications/路径下,找到自己想要的软件,这里以我的vim为例子。本文主要介绍Ubuntu中,如何创建软件的快捷方式放到桌面上。如果不行的话,那就右键一下桌面的对应链接文件,再点击。

2025-02-24 23:10:28 765

原创 【C++】 时间库chrono计算程序运行时间

本文总结了chrono库的引入方法以及计算程序片段运行时间的方法。

2025-02-23 22:52:24 576

原创 【GDB】 断点的相关设置

假设是只有一个源cpp文件编译生成的可执行程序,那么最简单的方法就是按照源代码行号打断点。//等价于b 12;这样就是在该源文件第12行设置一个断点。

2025-02-23 21:10:37 1799

原创 [C++] 程序中处理ctrl+c信号

C++中处理ctrl+c信号,以及其他信号的总结

2025-02-16 20:25:39 944

原创 【C++】C++中函数返回的局部对象的生命周期

输出的顺序是由对象销毁的顺序决定的。fox2是局部对象,先销毁;fox是main()中的对象,后销毁。因此,输出为:复制GPT的回答中提到了一个函数返回对象的生命周期的点,再问…

2025-02-15 23:48:37 728

原创 【C/C++学习笔记之声明式和定义式】

在学习Effective C++的时候,看到了声明式和定义式这两个概念,突然感觉自己好像一直对这两个概念都区分不清楚。所以本文主要研究二者区别联系。在声明式的基础之上,还会进行内存的分配,同时也可以对变量进行初始化。还有一点就是,声明和定义往往可以同时进行,这也是为什么我不能将二者区分清楚的原因。int i = 0;//声明&&定义&&初始化int i;//声明&&定义&&未初始化上面的代码主要是为了搞清楚,为什么酷似变量的定义(static const int NumTurns = 5;

2023-09-24 17:25:10 569

原创 虚函数 继承 出错的debug

在学习面向对象的时候,需要用到一些虚函数。这里的虚函数,大概就是因为写成函数声明,没写成纯虚函数而导致的报错。

2023-07-13 10:46:13 239

原创 C++,Qt知识点总结

在C++中,函数重载是指在同一个作用域内定义多个函数,这些函数具有相同的名称但不同的参数列表。当你在代码中使用 const 成员函数时,编译器会强制执行只读操作,这可以防止你无意中修改对象的成员变量,从而提高代码的可读性。在C++中,凡是类中定义的函数,统统为inline函数。当我们的父类指针使用子类来进行new的时候,对应的犯法,就会去调用子类的。在一个父类下面的子类有很多的时候,父类指针可以根据不同的子类实例化,来做出不同的反应。如果没有定义,它会执行接下来的代码,如果已经定义,它会跳过接下来的代码。

2023-07-12 11:31:56 572

原创 计算机网络实验

或者点进我主页,最前面几篇就是。

2022-12-29 20:44:16 234

原创 ROS下Rviz的摄像头视频采集和标定

我需要有/usb_cam和/usb_cam/image_raw,这两个东西来为标定程序来服务。以上原因分析和解决办法,是基于我的环境来的,如果有类似的问题,请按照分析方法分析自己的原因,再看看我的解决方法是否有用。在运行了rosrun uvc_camera uvc_camera_node 之后,可以使用cheese命令检查。它会启动一些节点,其中包括了/use_cam/image_raw和/use_cam。如果,就检查一下自己的USB是不是3.x。如果还有问题,那么就去下对应的usb驱动。

2022-12-27 01:07:05 1446

原创 【计算机网络实验二-wireshark实验】

2.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。qige.io接收到后,应该要回复一个ack包,同时,它为了断开与我的连接,也要发一个FIN包,所以这里二三两次挥手被合在一起了。刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。最后我的主机再回复一个ack确认位为1的包。

2022-12-18 00:25:34 2944

原创 【计算机网络实验一-验证性实验】

IPv6地址:IP协议的地址,与ipv4不同的是,它更长,容量更大,其中它的格式基本是这样的,2001:0DB8:02de:0000:0000:0000:0000:0e13,每一位都按16进制写,四位一组,一共六组。与DHCP客户端位于同意网段的DHCP服务器都会收到DHCP DISCOVER报文,DHCP服务器选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。当然我们的ip肯定是不一样的。

2022-12-18 00:25:02 682

原创 计算机网络实验三-Cisco Packet Tracer 实验

qige计算机网络实验

2022-12-18 00:23:46 1689

原创 【类中定义过大二维数组导致段错误】

例如:项目场景:力扣刷题 5. 最长回文子串 出现内存不足bug这里可以看到,运行程序后,明明还应该有cin等待输入,但是程序直接结束啦原因分析:我在类里面定义了一个长1005宽1005的二维数组。这导致了内存溢出。所以修改为全局变量。

2022-12-05 23:43:40 474

原创 git向gitee提交代码

本文记录如何使用git向gitee提交代码以上就是今天要讲的内容,本文仅仅简单介绍了git的使用.

2022-11-28 12:03:38 850

原创 C++实现简易计算器

C++实现简易计算器

2022-11-11 21:26:26 1399

原创 qt使用connect时,传入了空指针

项目场景:通过qt编写一个简化版计算器,其中涉及到connect。

2022-11-03 23:59:43 732

原创 Ubuntu16 下载ros kinetic

本文主要介绍在Ubuntu16下安装ros kinetic的操作步骤参考博客相关博客提示:这里对文章进行总结:以上就是今天要讲的内容,本文简单介绍了ros的安装,以及某些踩坑的解决方法。

2022-10-31 23:01:16 706

原创 qt实现进程调度算法-时间片转轮

本文介绍qt实现时间片转轮算法以上就是今天要讲的内容,本文简单地介绍了时间片算法的实现。

2022-10-27 19:11:32 1520

原创 【C++学习笔记之指针悬挂】

本文主要介绍C++指针悬挂怎么产生的,以及代码实验在使用拷贝构造函数时,不要随便浅拷贝。

2022-10-26 23:31:47 1460 1

原创 C++实现学生管理系统

C++实现学生管理系统

2022-10-25 11:35:10 6552 6

原创 C++学习笔记之内存泄漏

本文主要介绍C++内存泄漏,代码实现提示:以下是本篇文章正文内容,下面案例可供参考用来new 就必须要有delete。

2022-10-24 23:52:01 852

原创 【qt报重定义】

项目场景:通过qt编写项目时,重复定义报错。

2022-10-23 23:28:10 596

原创 【qt实现生产者消费者】

操作系统是四大件之一,这里为了完成对应的生产者消费者实验,用qt进行了实现。本文就介绍一下怎么用qt的多线程来实现生产者消费者。(本文主要注重代码的实现,原理部分如信号量就不详细讲啦)这里讨论最简单的,一个生产者和一个消费者对一片缓冲区进行读写操作。当缓冲区满时,生产者不能再进行生产,当缓冲区为空时,消费者不能再进行消费。接下来上一段的代码,介绍一下p,v操作的实现sleep(1);//睡眠一秒 } s --;s ++;}这里两个原语操作,s可以为对应的缓冲资源,以及互斥变量mutex。

2022-10-17 11:19:04 948

原创 【Ubuntu16编译qt项目,对应的.so文件出错】

项目场景:在ubuntu下make编译qt项目代码,本来在项目文件中存在.so文件,却报错找不到对应的.so文件。

2022-10-16 17:40:26 1030

原创 Ubuntu16.04 LTS 安装qt4

Ubuntu16.04下载qt4.8.7

2022-10-16 01:08:04 1485 1

原创 Qt报错 使用信号槽,报error: ‘staticMetaObject‘ is not a member of ‘XXX‘

Qt报错 使用信号槽,报error: 'staticMetaObject' is not a member of 'XXX'

2022-10-13 12:06:45 1314

原创 win10怎么手动修改自己的IP地址

win10 手动分配自己的ip地址

2022-10-04 16:18:00 6946 1

原创 C++ 归并排序

C++ 实现的归并排序

2022-08-19 01:46:55 495

空空如也

空空如也

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

TA关注的人

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