- 博客(9)
- 收藏
- 关注
原创 手动添加Git Bash Here到右键菜单
5、在“open in Git”目录下右键—新建—字符串值“Icon”,双击编辑,其值为“D:\software\Git\mingw64\share\git\git-for-windows.ico”。6、在“open in git”目录下右键—新建—项“command”,其值为 "D:\software\Git\git-bash.exe",需要按照实际路径修改。4、在“shell”目录下右键—新建项“open in Git”,其值为“Git Bash Here",此为右键菜单显示名称。
2024-01-09 15:35:03 503 1
转载 位运算n & (n-1)的妙用
由此可以得出,n和n-1的低位不一样,直到有个转折点,就是借位的那个点,从这个点开始的高位,n和n-1都一样,如果高位一样这就造成一个问题,就是n和n-1在相同的位上可能会有同一个1,从而使((n & (n-1))!n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000。10&(-10)为 0010 = 2 所以10的因子中为2的有一个,2^k的形式的为2^1。((n & (n-1)) == 0),则高位必须全为0,这样就没有相同的1。
2023-11-14 14:43:18 84 1
原创 c++ assert() 使用方法
它用于检查“不应该”发生的情况。在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用。这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。assert宏的原型定义在<assert.h>中,其作用是如果它的。频繁的调用会极大的影响程序的性能,增加额外的开销。
2023-11-14 14:12:00 307 1
转载 异或运算详解
校验和恢复主要利用的了异或的特性:IF a ^ b = c THEN a ^ c = b 应用:一个很好的应用实例是RAID5,使用3块磁盘(A、B、C)组成RAID5阵列,当用户写数据时,将数据分成两部分,分别写到磁盘A和磁盘B,A ^ B的结果写到磁盘C;想办法得到 a 或者 b,假设 结果 为 00001001(F肯定不为0),根据结果 的值我们发现,如果某一位的值为1,则在两个出现一次的数字中,在这一位上,一定一个是1,一个是0。时间复杂度为O(n),当然是线性的,空间复杂度O(1);
2023-11-14 13:54:17 3420 1
转载 内存泄漏检查:windows(CRT) linux(mtrace 内存追踪、valgrind 工具)
【精选】用mtrace定位内存泄漏-CSDN博客内存泄漏定位工具之 valgrind 使用 - 大橙子疯 - 博客园 (cnblogs.com)
2023-11-10 15:01:28 46 1
原创 C++原子操作 - 多线程编程:模板类型std::atomic
s'dsd, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换。原子变量()是C++中用于的强大工具之一。它们提供了一种线程安全的方式来访问和修改共享数据,而。支持各种数据类型,如整数、布尔值、指针等,但是。你可以创建对象,并使用原子操作来读取和修改它们的值。我们使用时应该将 atomic object 进行初始化,因为默认的构造函数并不完全初始化他(并不是因为其初始值不明确,而是其lock未被初始化)。
2023-11-09 15:46:29 161
原创 C++中数据的存储分配
数据区BSS(segment 和Data segment)内存映射段(Memory mapping Segment)函数存放在代码区(Text segment)内核空间(Kernel space)
2023-11-09 15:17:26 34
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人