C++中的各种锁
摘要:在多线程开发中,经常会遇到数据同步,很多情况下用锁都是一个很好的选择。C++中常用的锁主要有下面几种: 互斥锁(std::mutex) 这是最基本的一种锁。它用于保护共享资源,在任意时刻,最多只有一个线程可以获取该锁,从而访问被保护的资源。当一个线程获取了互斥锁后,其他试图获取该锁的线程会被阻塞,直
阅读全文
posted @
2024-11-05 22:29
Arthurian
阅读(829)
推荐(6) 编辑
C++智能指针
摘要:智能指针是C++语言中一种方便、安全的内存管理工具。智能指针可以自动管理对象的生命周期,避免手动分配和释放内存时可能出现的内存泄漏和悬挂指针等问题。在C++11标准中,引入了三种智能指针:unique_ptr、shared_ptr 和 weak_ptr。 类型 含义 备注 std::unique_p
阅读全文
posted @
2023-09-16 23:44
Arthurian
阅读(1537)
推荐(4) 编辑
realloc() 用法详解
摘要:在开发过程中我们经常要动态地进行内存分配,而内存的管理是一个重要的问题。在C语言中,内存分为四个区域:堆区,栈区,全局/静态存储区和常量存储区。其中,堆区用于动态内存分配。在C标准库中,主要有两个函数用于动态内存分配,分别是malloc()和realloc()。 malloc()函数 malloc(
阅读全文
posted @
2023-09-11 23:04
Arthurian
阅读(419)
推荐(0) 编辑
C++ STL之map、multimap
摘要:map和multimap是C++ STL(Standard Template Library)中的关联容器,它们提供键值对的存储和访问。 map是一个有序关联容器,它存储一组键值对,其中每个键都是唯一的。map中的键值对按照键的升序排序。用户可以通过键来访问、修改和删除对应的值。map的实现通常使用
阅读全文
posted @
2023-09-10 23:48
Arthurian
阅读(127)
推荐(0) 编辑
C++ STL 容器简介
摘要:1、总述 C++ STL(Standard Template Library)是 C++ 标准库的一部分,包括了许多数据结构的实现,提供了许多好用的轮子,同时,其设计思想也非常值得学习。其中,容器是 STL 中最重要的一部分,它是一种高效的数据存储和管理方式,能够方便地处理不同类型的数据,并提供许多
阅读全文
posted @
2023-08-13 22:49
Arthurian
阅读(36)
推荐(0) 编辑
利用DbgHelp获取线程的栈回溯信息
摘要:当线程发生异常时,我们如果可以记录下来异常线程的堆栈信息,那么对于我们后续问题处理将会有极大的帮助。这里记录一个操作方法。 1 #include <iostream> 2 #include <Windows.h> 3 #include <process.h> 4 #include <DbgHelp.
阅读全文
posted @
2022-09-25 16:40
Arthurian
阅读(156)
推荐(1) 编辑
C++处理系统相关权限问题
摘要:权限问题处理是日常开发过程中很常见的一个操作,这里记录一下使用方法
阅读全文
posted @
2022-09-08 23:00
Arthurian
阅读(347)
推荐(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
阅读(1120)
推荐(0) 编辑
C++递归创建文件夹
摘要:根据传入的参数递归进行目录的创建。 函数描述: 递归创建目录。 入参: 所要创建的目录。 返回值: 创建成功,返回TRUE;否则返回FALSE。 1 BOOL CreateDirTree(LPCTSTR lpPath) 2 { 3 if( (NULL == lpPath) || (0 == _tcs
阅读全文
posted @
2020-04-11 19:44
Arthurian
阅读(2318)
推荐(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
阅读(1014)
推荐(0) 编辑
结构体的一些容易被忽略的重要知识
摘要:我们经常使用结构体,但是很多人却不知道结构体使用还有一些很重要的地方需要注意。
阅读全文
posted @
2018-07-28 16:52
Arthurian
阅读(402)
推荐(0) 编辑
PTA之求单链表结点的阶乘和
摘要:题目描述 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。 时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: int FactorialSum( List L ); 其中单链表List的定义如下: typed
阅读全文
posted @
2018-06-21 09:35
Arthurian
阅读(805)
推荐(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
阅读(542)
推荐(0) 编辑
动态规划之0-1背包问题
摘要:0-1 背包问题是动态规划中一个典型的问题。 问题描述 给定n种物品和一个背包,物品 i 价值 wi 和重量 vi 已知,确定装入背包的物品方案,使得包内物品总价值最大。 算法过程 设n个物品重量存储在w[n]中,价值存储在数组v[n]中,背包容量位C,数组V[n+1][C+1]存放迭代结果,其中V
阅读全文
posted @
2018-05-30 13:00
Arthurian
阅读(725)
推荐(0) 编辑
分解质因数
摘要:将一个正整数分解质因数。例如:输入 210,打印出 210 = 2 * 3 * 5 * 7 问题分析 一个正整数 n 用 2 去除,如果能整除(n % 2 == 0),则必有质因数 2,去除因子 2(n /= 2),如此反复,直到不能被整除;接下来用 3 去除,如果能整除(n % 3 == 0),则
阅读全文
posted @
2018-05-27 22:52
Arthurian
阅读(452)
推荐(0) 编辑
PTA之简单阶乘计算
摘要:本题要求实现一个计算非负整数阶乘的简单函数。 时间限制: 400ms 内存限制: 64MB 代码长度限制: 16KB 函数接口定义: int Factorial( const int N ); 其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。 裁判测试
阅读全文
posted @
2018-05-23 20:49
Arthurian
阅读(2776)
推荐(0) 编辑
C++运算符优先级
摘要:在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。 优先级从上到下依次递减,最上面具有最高的优先级,逗
阅读全文
posted @
2018-05-10 16:45
Arthurian
阅读(797)
推荐(0) 编辑
scanf 输入加逗号(或者不加逗号)出现的异常及解决方案
摘要:我们在写 C 语言代码通常 scanf 的格式控制部分都有两种习惯,加逗号与不加逗号,而这两种情况都会因为我们的不同输入习惯产生一定的问题,这里给出另一种方法。
阅读全文
posted @
2018-04-30 01:14
Arthurian
阅读(5641)
推荐(0) 编辑