- 博客(6)
- 收藏
- 关注
原创 C++的内存对齐
之所以要这么对齐,可以举个例子来理解,假如CPU每次只能从4的倍数的起始地址访问,一次只能访问4字节,那么像short和int这么对齐,能够保证CPU要访问这个数据只需要一次读取就能完成。如果int的起始地址不是4的倍数,CPU访问一次内存只能取出int的一部分。CPU访问内存时,地址必须是特定值的倍数(比如4字节或8字节),如果没有内存对齐,4字节的int类型数据可能需要分成两次访问才能读取,影响性能。所谓的对齐,指的就是这个数据的起始地址是它的对齐值的倍数。结构体的对齐值是其成员中最大对齐值的倍数。
2025-09-05 14:46:58
221
原创 C++有符号数和无符号数逻辑运算以及整数提升
C++的有符号数和无符号数进行逻辑运算(例如比较)时,会把有符号数转成无符号数,所以实际打印了c < d。但是由于C++有一个操作叫整数提升,会把unsigned char和char都提升成int,所以变成了两个有符号数比较,因此a > b。
2025-08-28 10:41:11
132
原创 vector初始化
在写leetcode时需要创建一个vector<vector<char>>容器,我的写法非常冗余:实际上一行就能完成这个初始化过程:这样的构造方法其实我以前也经常用:但是没想到二维vector用这种构造方法是可以直接完成初始化的。
2025-08-28 10:35:43
216
原创 C++八股文
本博客记录本人遇到的C++八股问题,并根据自己的理解作出回答(由于是个人理解,所以答案不一定完全准确和全面,这么做的原因是我觉得有的问题的标准答案太过抽象且不好记忆QAQ,所以我会在理解后用自己的话来作答),有些不好理解的点会附上代码帮助理解。由于我写这篇博客时是默写的(相当于是对之前背的知识的复习),所以可能会漏掉一些东西,正文中标蓝的字表示是后来补充的。
2025-03-18 11:22:36
1411
原创 侯捷C++课程学习记录
本篇文章主要记录在学习侯捷的C++课程过程中遇到的此前没了解过的知识,并不涵盖所有知识点。guard(防御式声明)...#endif在写一个头文件的时候,可以用这样的防御式声明,作用是在引用这个头文件时,如果没有定义(ifndef)__COMPLEX__,那么定义(define)__COMPLEX__,然后进入到头文件里的内容,最后(endif)。如果程序第二次引用这个头文件,因为此前已经定义过__COMPLEX__,那么就不会进入到头文件里。
2024-11-12 19:35:17
1626
原创 LeetCode的数据结构
是一个哈希表,键值可重复,不会自动排序,使用方法和map相同。是一个哈希表,键不可重复,不会自动排序。使用方法与map相同。是一个红黑树,键不可重复,会自动排序。使用方法与map相同。是一个红黑树,键值可重复,自动按key由小到大排序。
2024-07-17 16:55:16
273
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅