C++中的各种锁
摘要:在多线程开发中,经常会遇到数据同步,很多情况下用锁都是一个很好的选择。C++中常用的锁主要有下面几种: 互斥锁(std::mutex) 这是最基本的一种锁。它用于保护共享资源,在任意时刻,最多只有一个线程可以获取该锁,从而访问被保护的资源。当一个线程获取了互斥锁后,其他试图获取该锁的线程会被阻塞,直
阅读全文
posted @
2024-11-05 22:29
Arthurian
阅读(1306)
推荐(6)
QT生成固定长度的随机字符串
摘要:最近项目中有一个需要使用QT生成固定长度随机字符串的需求,需求也很简单,就是生成一个n位的仅包含0-9以及大写字母的字符串,因为这也是第一次使用QT自身的随机数,这里就做一下简单记录。 废话不多说,直接上代码。 1 QString getRandomString(int length) 2 { 3
阅读全文
posted @
2024-03-12 22:11
Arthurian
阅读(413)
推荐(0)
C++智能指针
摘要:智能指针是C++语言中一种方便、安全的内存管理工具。智能指针可以自动管理对象的生命周期,避免手动分配和释放内存时可能出现的内存泄漏和悬挂指针等问题。在C++11标准中,引入了三种智能指针:unique_ptr、shared_ptr 和 weak_ptr。 类型 含义 备注 std::unique_p
阅读全文
posted @
2023-09-16 23:44
Arthurian
阅读(1740)
推荐(4)
realloc() 用法详解
摘要:在开发过程中我们经常要动态地进行内存分配,而内存的管理是一个重要的问题。在C语言中,内存分为四个区域:堆区,栈区,全局/静态存储区和常量存储区。其中,堆区用于动态内存分配。在C标准库中,主要有两个函数用于动态内存分配,分别是malloc()和realloc()。 malloc()函数 malloc(
阅读全文
posted @
2023-09-11 23:04
Arthurian
阅读(726)
推荐(0)
C++ STL之map、multimap
摘要:map和multimap是C++ STL(Standard Template Library)中的关联容器,它们提供键值对的存储和访问。 map是一个有序关联容器,它存储一组键值对,其中每个键都是唯一的。map中的键值对按照键的升序排序。用户可以通过键来访问、修改和删除对应的值。map的实现通常使用
阅读全文
posted @
2023-09-10 23:48
Arthurian
阅读(261)
推荐(0)
C++ STL 容器简介
摘要:1、总述 C++ STL(Standard Template Library)是 C++ 标准库的一部分,包括了许多数据结构的实现,提供了许多好用的轮子,同时,其设计思想也非常值得学习。其中,容器是 STL 中最重要的一部分,它是一种高效的数据存储和管理方式,能够方便地处理不同类型的数据,并提供许多
阅读全文
posted @
2023-08-13 22:49
Arthurian
阅读(87)
推荐(0)
利用DbgHelp获取线程的栈回溯信息
摘要:当线程发生异常时,我们如果可以记录下来异常线程的堆栈信息,那么对于我们后续问题处理将会有极大的帮助。这里记录一个操作方法。 1 #include <iostream> 2 #include <Windows.h> 3 #include <process.h> 4 #include <DbgHelp.
阅读全文
posted @
2022-09-25 16:40
Arthurian
阅读(203)
推荐(1)
Qt Creator pro文件常见配置
摘要:HEADERS:指定项目的头文件(.h) SOURCES:指定项目的源文件(.cpp) FORMS:指定协议UIC处理的由Qt Designer生成的.ui文件 RESOURCES:指定需要rcc处理的.qrc文件 DEFINES:指定预定义的C++预处理器符号 INCLUDEPATH:指定C++编
阅读全文
posted @
2022-09-25 15:01
Arthurian
阅读(259)
推荐(0)
C++处理系统相关权限问题
摘要:权限问题处理是日常开发过程中很常见的一个操作,这里记录一下使用方法
阅读全文
posted @
2022-09-08 23:00
Arthurian
阅读(379)
推荐(0)
QT中的宏定义
摘要:1、操作系统宏 //在<QtGlobal>中,定义了各个系统的宏定义 //Defined on AIX. #ifdef Q_OS_AIX // Defined on Android. #define Q_OS_ANDROID //Defined on Any BSD 4.4 system. #def
阅读全文
posted @
2021-03-17 11:34
Arthurian
阅读(3064)
推荐(0)
QT Creator项目路径设置
摘要:为了编译时输出的文件不那么混乱,需要对QT Creator的项目文件做一些设置,这里记录一下pro文件里面各个参数的用法
阅读全文
posted @
2021-03-13 15:01
Arthurian
阅读(1111)
推荐(0)
Qt Creator快捷键记录
摘要:QT Creator使用过程中用到的一些快捷键记录
阅读全文
posted @
2021-03-13 10:49
Arthurian
阅读(256)
推荐(0)
从使用delete释放指针导致程序崩溃看变量初始化
摘要:先来看下面的代码 bool FuncTest(LPCTSTR lpcProc) { bool bRet = false; ... if (CONDITION1) { goto FUNC_CLEAN; } char* pchX = new char[100]; ... FUNC_CLEAN: if (
阅读全文
posted @
2020-08-22 20:58
Arthurian
阅读(1166)
推荐(0)
C++递归创建文件夹
摘要:根据传入的参数递归进行目录的创建。 函数描述: 递归创建目录。 入参: 所要创建的目录。 返回值: 创建成功,返回TRUE;否则返回FALSE。 1 BOOL CreateDirTree(LPCTSTR lpPath) 2 { 3 if( (NULL == lpPath) || (0 == _tcs
阅读全文
posted @
2020-04-11 19:44
Arthurian
阅读(2392)
推荐(0)
PTA之多项式求值
摘要:时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: double f( int n, double a[], double x ); 其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。 裁判测试程序样例: 1 #include <s
阅读全文
posted @
2019-11-24 16:00
Arthurian
阅读(1031)
推荐(0)
结构体的一些容易被忽略的重要知识
摘要:我们经常使用结构体,但是很多人却不知道结构体使用还有一些很重要的地方需要注意。
阅读全文
posted @
2018-07-28 16:52
Arthurian
阅读(434)
推荐(0)
PTA之求单链表结点的阶乘和
摘要:题目描述 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。 时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: int FactorialSum( List L ); 其中单链表List的定义如下: typed
阅读全文
posted @
2018-06-21 09:35
Arthurian
阅读(846)
推荐(0)
PAT 之 A+B和C
摘要:时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard 题目描述 给定区间 [-2的31次方, 2的31次方] 内的3个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入描述 输入第1行给出正整数T(<=10),是测试用例的个数。随后给出
阅读全文
posted @
2018-06-16 19:11
Arthurian
阅读(562)
推荐(0)