
C/C++/qt
以实战为基础,把所学所用记录下来!主要为了帮助自己做笔记,同时希望能够帮助到大家,感谢 点赞关注收藏。
奇树谦
编程改变世界。想做一些改变世界的产品。感谢一键三连。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++语言常见问题-智能指针、多态原理
引用计数器会在拷贝、赋值、销毁、移动和重置时改变。:弱引用计数器会在创建和销毁时改变,但不会直接影响对象的生命周期。:不使用引用计数器,控制块在所有权转移时改变。智能指针的这些机制确保了对象的生命周期被正确管理,同时避免了内存泄漏和其他资源管理错误。多态性指的是同一个操作作用于不同的对象时,可以有不同的解释和不同的执行结果。在编程中,这通常意味着同一个方法或函数可以被不同的对象以不同的方式实现。原创 2025-04-17 20:52:48 · 575 阅读 · 0 评论 -
C++|GLog开源库的使用 如何实现自定义类型消息日志
就20250121搜集到的资料来看glog目前不支持自定义等级消息等级,但是可以通过添加标识符,宏定义,重写glog中的send函数实现。可以定义一个宏来封装日志记录操作,同时在宏中添加特定的标签或前缀。示例代码// 自定义日志接收器public:private:// 将日志内容包装为 std::string// 使用 stringstream 获取日志消息内容// 构造日志输出格式// 根据 severity 判断日志类型// 检查日志消息中是否包含特定标签。原创 2025-03-21 14:45:25 · 570 阅读 · 0 评论 -
C++|开源日志库log4cpp和glog
如果需要高性能和高效的异步日志,可以选择spdlog或loguru。如果项目已经使用了BoostBoost.Log是一个非常合适的选择。如果需要更全面的功能,如日志分割、归档等,可以选择或。对于Qt项目,使用 Qt 自带的QDebug会是最方便的选择。如果需要一个轻量级的解决方案,MinLog或ZLog是不错的选择。根据你的需求(性能、功能、配置灵活性、平台支持等)来选择合适的日志库。原创 2025-01-21 11:14:56 · 1666 阅读 · 0 评论 -
C++|CRC校验总结
参考:Vector - CAPL - CRC算法介绍开发工具 > CRC校验工具循环冗余校验(Cyclic Redundancy Check,简称CRC)是一种数据校验算法,广泛用于检测数据传输或存储过程中的错误。它通过计算数据的校验和来检测数据是否在传输过程中发生了错误。以下是几种常用的CRC校验算法:CRC-8CRC-16CRC-32CRC-64CRC算法特点CRC算法实现CRC算法通常通过位操作实现,包括位移、异或等操作。对于不同的多项式和数据长度,可以预先计算出一个查找表(lookup ta原创 2025-01-15 21:28:38 · 1285 阅读 · 1 评论 -
c++ 类之间的依赖问题:impl、代理模式
使用IMPL方式来较少类之间的依赖,减少编译时间变量可以使用指针,一大推变量使用结构体,类可以使用一个托管类,大致这三类型来实现减少依赖其实本质上来说,头文件之间就不应该有定义的依赖,所以java中统一使用了指针,实现cpp中才是真正包含所有具体定义,头文件是用来声明这个类长什么样子,实现cpp中用来实现这个类内部怎么实现的一个圆,圆内是你会的,圆外是你不知道的。而当圆越大,你知道的越多,不知道的也越多了。转载 2024-12-12 10:30:56 · 311 阅读 · 0 评论 -
C++|bitset模板类
如果你需要在容器中使用并进行排序,你可以定义一个比较函数或重载运算符。由于// 比较两个bitset// 使用自定义比较器进行排序// 打印排序后的bitsetsreturn 0;在这个示例中,我们定义了一个结构体,它重载了operator()来比较两个对象。然后我们使用std::sort对包含的进行排序。请注意,的比较是基于位集合的整数值进行的,而不是逐位比较。如果你需要逐位比较或其他复杂的比较逻辑,你需要在比较器中实现这些逻辑。原创 2024-10-22 19:51:54 · 979 阅读 · 0 评论 -
C++|sort函数
如果容器中的元素是自定义的类或结构体,你需要重载运算符来定义元素的比较逻辑。// 定义一个结构体int age;// 重载原创 2024-10-22 19:24:13 · 2100 阅读 · 0 评论 -
C++|std::stoi函数
是 C++11 引入的一个标准库函数,用于将字符串转换为整数。与 atoi() 不同,stoi() 提供了更强的功能,包括错误处理、支持指定进制等。,它存储了转换停止的位置,即字符串中 “123” 之后的字符 ‘a’ 的索引。的第一个参数,将字符串 “456” 转换为整数 456。,将字符串 “1a2” 视为十六进制数进行转换。如果转换失败(例如,字符串不包含有效的整数),是一个标准库函数,用于将字符串(在这个示例中,我们只使用了。在这个示例中,我们使用了。在这个示例中,我们使用了。原创 2024-10-21 20:14:44 · 2992 阅读 · 0 评论 -
C++|SHA-256、SHA-3或专门设计的密码哈希函数
在C++中,实现专门设计的密码哈希函数,如bcrypt、scrypt或Argon2,通常需要使用第三方库,因为这些算法比标准的哈希函数更复杂,包含了额外的安全特性。此外,密码哈希函数的使用应该遵循最新的安全最佳实践,包括适当的盐值生成和存储、密钥派生率的选择等。在C++中,你可以使用多种库来实现SHA-256哈希函数,其中比较流行的是OpenSSL库。确保你的OpenSSL库是最新的,因为旧版本可能不包含SHA-256函数。如果你的系统上的OpenSSL版本较旧,可能需要更新或安装支持SHA-3的版本。原创 2024-09-10 11:31:40 · 1453 阅读 · 0 评论 -
C++|MD5简介
将结构体的成员变量转换为字节流。使用MD5算法对字节流进行哈希计算。将计算出的哈希值转换为可读的格式(如十六进制字符串)。以下是一个简单的示例,演示如何对一个自定义结构体进行MD5哈希:首先,你需要一个MD5库。在C++中,你可以使用开源库如openssl来实现MD5。以下是使用openssl// 假设这是你的自定义结构体int a;float b;// 将结构体转换为字节流的函数// 以网络字节顺序(大端)写入数据const。原创 2024-09-10 11:16:14 · 2216 阅读 · 0 评论 -
C++|初始化自定义结构体的几种方式
每种方法都有其适用场景,例如直接初始化和列表初始化是最简单直观的,而使用构造函数则提供了更多的灵活性和控制。在C++中,初始化自定义结构体有多种方式,每种方式都有其适用场景。操作符则适用于特定的性能优化场景或动态内存管理需求。选择哪种方法取决于具体的使用场景和需求。等则可以在初始化时提供更多的数据结构支持。原创 2024-08-30 20:57:11 · 1315 阅读 · 0 评论 -
蓝桥杯 基础练习
蓝桥杯 基础练习原创 2020-03-20 21:59:59 · 775 阅读 · 1 评论 -
C++ vector的使用
是C++标准模板库(STL)的一部分,它允许你添加、删除、排序和搜索元素。是一个功能强大的容器,它在C++程序中被广泛使用。了解这些基本操作可以帮助你更好地利用。是一个动态数组,它提供了一种灵活的方式来存储和操作元素集合。原创 2024-05-07 10:27:51 · 442 阅读 · 0 评论 -
Qt应用程序直接在没有环境的windows系统电脑上运行 获取qt依赖库
Qt应用程序直接在没有环境的windows系统电脑上运行原创 2024-04-26 14:09:53 · 641 阅读 · 0 评论 -
Windows|基于U3V协议的libusb库的使用
Windows|基于U3V协议的libusb库的使用原创 2024-04-12 13:29:02 · 1637 阅读 · 0 评论 -
C++|char*大小端转换
C++ char*大小端转换原创 2024-03-28 09:13:33 · 480 阅读 · 0 评论 -
C++ match_results prefix()、suffix()实例讲解
本文章向大家介绍C++ match_results prefix()、suffix()实例讲解,主要分析其语法、参数、返回值和注意事项,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。注意:第一个元素始终包含整个正则表达式匹配项,而其他元素则包含特定的捕获组。注意:第一个元素始终包含整个正则表达式匹配项,而其他元素则包含特定的捕获组。返回值:此函数返回目标字符串中匹配序列之前的序列。返回值:该函数返回目标字符串中匹配序列之后的序列。参数:此函数不接受任何参数。转载 2024-02-18 14:00:13 · 369 阅读 · 0 评论 -
Qt|QLabel显示刷新图像数据
Qt|QLabel显示刷新图像数据原创 2023-11-21 09:44:54 · 1235 阅读 · 0 评论 -
C|基础语法 控制台输入输出各类型数据
C|基础语法 控制台输入输出各类型数据原创 2023-09-24 15:56:18 · 656 阅读 · 0 评论 -
Qt|批量清空控件内容
【代码】Qt|批量清空控件内容。原创 2023-08-10 14:57:40 · 452 阅读 · 0 评论 -
Qt| There‘s no Qtversion assigned to project... 解决方法
找到Qt Project Settings->Qt Installation,切换到当前电脑所使用的qt版本即可。原因:相同工程在不同电脑下qt配置不一致导致,该项目qt setting设置有误。解决方法:右键项目打开属性。原创 2023-07-13 17:35:03 · 6375 阅读 · 3 评论 -
C++|如何退出双层for循环
C++退出双层for循环的两种方法原创 2023-07-05 09:14:27 · 2828 阅读 · 0 评论 -
Qt|QDialog的创建及使用
Qt|QDialog的创建及使用原创 2023-06-15 09:08:32 · 2440 阅读 · 0 评论 -
C++|计算时间差
C++|计算时间差原创 2023-05-15 16:33:19 · 656 阅读 · 0 评论 -
C|语言中判断一个字符串是否包含另一个字符串
C语言判断字符串包含问题原创 2023-05-04 11:14:00 · 1605 阅读 · 0 评论 -
C++|判断double值是否相等,不可直接用==
【代码】C++|判断double值是否相等,不可直接用==原创 2023-04-26 10:28:30 · 955 阅读 · 0 评论 -
C++|读写RAW图
C++读写raw图原创 2023-03-27 11:13:57 · 988 阅读 · 0 评论 -
Qt|Qt5同一个信号多个参数重载连接槽函数问题
【代码】Qt|Qt5同一个信号多个参数重载连接槽函数问题。原创 2023-02-27 09:51:44 · 349 阅读 · 0 评论 -
C++|判断大小端以及各类型字节翻转
首先声明一点,只有结构体会有字节翻转问题,char数组不存在此问题,所以借助char数组来进行所谓的字节翻转,进而保证发送的数据都是大端数据。记在开头,发现小端电脑即使鼠标悬浮显示的是004d但实际内存里是4d00!按大端数据存储格式依次将数据放入char数组。longlong类型翻转后存入char数组。longlong类型翻转前内存。原创 2023-02-23 17:14:20 · 568 阅读 · 0 评论 -
QT|C++QMessagebox卡死,程序无响应问题解决方法
多线程调用时在子线程里使用QMessageBox会出现此问题,用发送信号的方式解决这个问题。我这里只用了information类型,可以再加一个参数枚举区分提示框的类型。原创 2023-02-21 16:46:53 · 2378 阅读 · 0 评论 -
C++|遍历枚举值
C++遍历枚举值原创 2023-02-14 16:06:28 · 687 阅读 · 0 评论 -
C++|获取系统目录的几种方法
C++利用windowsAPI获取user用户文件夹设置配置文件。原创 2023-01-19 11:32:03 · 311 阅读 · 0 评论 -
C++|读写xml文件开源库tingxml2的使用
C++读写xml文件原创 2023-01-19 11:22:58 · 2020 阅读 · 1 评论 -
Qt|串口通信之同步数据 发送数据并等待返回值
qt串口通信原创 2023-01-18 16:20:03 · 4945 阅读 · 0 评论 -
C++|类内子线程计时器的实现用于超时后更改状态
C++类内实现子线程计时器原创 2023-01-18 09:10:59 · 558 阅读 · 0 评论 -
C|%输出各种类型的值总结
C语言输出各种值%百分号后的字母表示原创 2022-12-29 19:13:04 · 2025 阅读 · 0 评论 -
C|参数为...参数可变函数void VariableFunction(const char *fmt,...) va_list、va_start、va_arg、va_end
C语言中可变参数的使用示例原创 2022-12-29 09:19:28 · 313 阅读 · 0 评论 -
C++|通过fstream读写TXT文件字符串切割
C++读写txt文件,字符串切割原创 2022-12-28 13:09:01 · 369 阅读 · 0 评论 -
win10VS2017安装boost库
vs2017配置boost库使用原创 2022-12-19 23:04:58 · 747 阅读 · 0 评论 -
Qt|实现一个登录界面
qt实现登录界面原创 2022-12-09 15:28:06 · 821 阅读 · 0 评论