logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

手动加锁解锁版本catch里解锁结果正确分析

本文通过多线程程序示例分析手动加锁解锁的风险,对比推荐使用std::lock_guard的RAII机制。实验显示,手动在catch块解锁虽能避免死锁,但存在三大隐患:1)多退出路径导致解锁遗漏;2)try块外异常无法捕获;3)catch块内再抛异常跳过解锁。而lock_guard通过构造/析构自动管理锁生命周期,能可靠处理所有异常和退出路径,是C++中更健壮的互斥锁管理方案。

#c++
包含目录与附加包含目录、库目录与附加库目录

来自豆包总结的包含目录与附加包含目录、库目录与附加库目录区别

文章图片
#windows
【std::map与QMap】范围for循环

std::map与QMap在基于范围的for循环遍历中存在显著差异:std::map迭代器返回键值对std::pair,可直接获取键和值;而QMap迭代器仅返回值,需通过it.key()获取键。

#c++#qt
代码指令与属性配置

本文总结了C/C++中通过代码指令替代项目属性配置的常见方法,包括#pragma指令和__declspec扩展的使用。

#c++#开发语言
【std::map】判断是否存在某个键

本文介绍了在C++中判断std::map是否存在某个键的四种方法:1)使用find方法(最常用,可获取键值);2)count方法(简洁判断存在性);3)C++20新增的contains方法(最直观);4)慎用的operator[](会自动插入不存在的键)。

#qt#开发语言#c++
C++取模与取余

摘要: 取模(Modulo)和取余(Remainder)在正数运算中结果一致,但负数场景下因商的取整规则不同可能导致差异。

#c++#开发语言
【#pragma once】

本文探讨了 C/C++ 中 #pragma once 预处理器指令的用途与优势。

#c++
到底了