- 博客(51)
- 收藏
- 关注
原创 CMap常用函数
CMap是MFC中基于哈希表的键值对容器类,支持高效插入(SetAt)、查找(Lookup)、删除(RemoveKey)和遍历(GetNextAssoc)操作。使用时需声明键值类型,键必须唯一,插入重复键会覆盖原值。典型应用包括配置表、缓存数据等需要快速查询的场景,但需注意其无序性特点。CMap自动管理内存,提供O(1)平均时间复杂度的操作效率。
2025-09-09 11:36:41
322
原创 CStringArray 和 CStringList
摘要:MFC中的CStringArray和CStringList在字符串管理上有本质区别。CStringArray基于动态数组,适合随机访问和排序,内存紧凑但插入删除效率低;CStringList采用双向链表,适合频繁增删元素,但随机访问性能差。选择时应根据主要操作类型决定:频繁访问用数组,频繁增删用链表。数组适合元素相对固定的场景,链表则更适合动态变化的数据结构。两者在初始化、遍历方式等具体操作上也有明显差异。
2025-09-09 11:31:15
696
原创 CString(MFC/ATL 框架)和 QString(Qt 框架)
CString(MFC/ATL)和QString(Qt)是C++中两大常用字符串类。CString分ANSI/Unicode版本,需显式处理编码转换,适合Windows平台MFC开发;QString默认采用UTF-16编码,内置跨平台支持,功能更丰富(含正则、国际化等)。两者在基础操作(拼接、查找、转换等)上相似,但QString采用写时复制优化,且与Qt控件集成更紧密。选择时需考虑平台兼容性:Windows项目用CString,跨平台开发选QString。
2025-09-09 11:19:36
817
原创 VS2010 在查找预编译头使用时跳过
这样设置后,编译器在处理相关文件时就会跳过预编译头的检查和使用。注意这种设置可能会增加编译时间,因为失去了预编译头带来的编译优化。
2025-08-25 20:44:43
214
原创 const int *, int const *, int* const, const * int
这两种声明方式是等价的,都表示指向常量整数的指针。也就是说,通过这个指针不能修改它所指向的对象的值,但指针本身可以指向其他对象。这种声明表示常量指针,即指针本身是常量,一旦初始化后就不能再指向其他对象,但可以通过该指针修改它所指向对象的值。
2025-02-19 16:32:20
183
原创 MVVM设计模式
MVVM(Model-View-ViewModel)是一种软件设计模式,MVVM模式由三个主要部分组成:Model(模型):负责管理应用程序的业务逻辑和数据。它不关心UI如何展示数据,主要负责与服务器通信和数据处处理。View(视图):直接与用户交互的界面,负责展示数据。视图不包含业务逻辑,只负责数据的展示。ViewModel(视图模型):作为视图和模型之间的桥梁,包含UI逻辑,通过数据绑定机制驱动视图的变化。它处理用户的输入并将结果传递给模型。MVVM的核心机制和优势。
2025-02-10 09:40:09
599
原创 * (头指针分离自 9822ba4) ,提交代码不能到分支——游离分支
通过git checkout commitId(之前的一个版本);基于这个版本修改提交代码推送代码,但是远端没有更新最新数据。
2024-08-05 00:32:58
304
1
原创 http读书笔记
HTTP/1.1 和一部分的 HTTP/1.0 想出了持久连接(HTTP Persistent Connections, 也称为 HTTP keep-alive 或HTTP connection reuse) 的方法。持久连接的特点是, 只要任意一端没有明确提出断开连接, 则保持 TCP 连接状态。在 HTTP/1.1 中, 所有的连接默认都是持久连接, 但在 HTTP/1.0 内并未标准化。虽然有一部分服务器通过非标准的手段实现了持久连接,但服务器端不一定能够支持持久连接。
2024-07-06 17:41:53
602
原创 QApplication setStyleSheet 和 QMainWidows setStyleSheet 区别
QApplication::setStyleSheet() 用于设置全局样式表,影响整个应用程序。QMainWindow::setStyleSheet() 用于设置特定窗口的样式表,只影响该窗口及其子控件。在选择使用哪个方法时,取决于你的需求。如果你想要整个应用程序具有一致的外观和感觉,那么使用 QApplication::setStyleSheet() 是合适的。如果你想要为特定的窗口或窗口组定义特定的外观,那么使用 QMainWindow::setStyleSheet() 是更好的选择。
2024-05-16 09:53:47
485
原创 QGraphicsItem的prepareGeometryChange 和 update方法区别
QGraphicsScene认为所有图元的boundingRect函数与shape函数都是不发生改变的,除非用户进行通知。如果你想改变一个先调用prepareGeometryChange以允许QGraphicsScene进行更新。
2024-05-08 11:52:52
975
原创 阻塞/非阻塞IO、同步/异步IO的区别
阻塞/非阻塞关注的是线程在等待IO操作完成时的状态,而同步/异步关注的是IO操作的结果如何通知调用者。在实际应用中,需要根据具体的业务场景和需求来选择合适的IO模型。例如,对于需要高效处理大量并发连接的服务,通常会选择非阻塞或异步IO模型,以便在等待IO操作完成的同时处理其他任务。而对于一些对实时性要求不高的场景,可以选择阻塞或同步IO模型,以降低编程复杂度和提高代码的可读性。
2024-04-07 15:47:55
500
原创 ros控制台发布数组类型话题
输入rostopic pub 【输入话题名必要字符,按tab补全】【按tab补全】,如下。修改data字段,空格 [元素1,元素2,…
2024-04-07 09:26:29
390
原创 linux 常用指令
lsof(list open files)命令可以列出当前系统中打开的所有文件,包括网络端口。可以使用lsof命令查看某个端口被哪个进程占用。具体的命令为:sudo lsof -i :端口号,其中端口号为需要查询的端口号。
2023-09-27 18:39:38
127
原创 QCoreApplication::postEvent: Unexpected null receiver
【代码】QCoreApplication::postEvent: Unexpected null receiver。
2023-08-10 18:50:25
1847
原创 Ubuntu windows 双硬盘 双系统 引导
在两块硬盘上分别安装了ubuntu 和windows 系统, 然后通过。选择Windows Boot Manager进入windows系统,弹出。提示已成功创建启动文件,说明成功了。点击查看更多键盘布局(到最后一页),选择了。选项, 在新弹出的窗口选择。
2023-03-13 16:49:59
2477
原创 node.js 跨域访问
Access to XMLHttpRequest at 'http://192.168.1.20:5500/data.json' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
2023-03-06 23:11:49
237
1
原创 Qt munmap_chunk(): invalid pointer
软件退出时报munmap_chunk(): invalid pointer…
2023-03-01 18:12:55
965
1
原创 xxx: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘ not found (required by xxx)
xxx: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by xxx)
2022-12-29 17:32:13
3907
2
原创 ERROR: invalid message type: fl_com/sensor_connect_state. If this is a valid message type, perhaps y
重启roscore。
2022-12-02 15:32:10
556
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人