自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 补卡day16

【代码】补卡day16。

2025-08-10 22:49:22 97

原创 day15_keep going on

【代码】day15_keep going on。

2025-08-09 15:29:21 112

原创 打卡day14

226. 翻转二叉树 - 力扣(LeetCode)101. 对称二叉树 - 力扣(LeetCode)104. 二叉树的最大深度 - 力扣(LeetCode)函数调用模型每次调用函数,都会在“调用栈”上分配一个新的栈帧(stack frame),用于保存该次调用的参数、局部变量和返回地址。递归调用本质上与普通的函数调用完全相同:只是函数体里直接写了对自己的调用。递归的必要条件基准情形(Base Case):函数内必须有一个「不再向下递归」的情形,否则会无限调用直至栈溢出。在 中,这个基准情

2025-08-05 22:01:07 706

原创 二叉树的层序遍历

【代码】二叉树的层序遍历。

2025-08-05 12:00:00 135

原创 二叉树的递归遍历

【代码】二叉树的递归遍历。

2025-08-04 20:33:31 104

原创 补卡day8

【代码】补卡day8。

2025-08-03 16:16:31 159

原创 kmp复习,需要多看多练

【代码】kmp复习,需要多看多练。

2025-07-31 23:33:18 133

原创 day7 替换数字那道题需要多写几次

【代码】【无标题】

2025-07-30 23:16:04 183

原创 继续打卡day6

总结:这次有的题目第二次写了还是不会,归根结底是对原理不清楚,只是在背题解一样,要多理解为什么这样写的原理。还是不会处理这里的去重逻辑。

2025-07-29 22:53:56 207

原创 打卡day5

【代码】打卡day5。

2025-07-28 21:46:58 142

原创 day 4

【代码】day 4。

2025-07-26 17:11:23 202

原创 打卡第3天

第一次把这个设计链表写出来了。

2025-07-25 22:50:27 128

原创 define ,typedef和using的区别

`typedef` | 关键字 | 为已有类型定义别名 | 是 | 是 | 否 | 是 || `using` | 关键字 | 为类型或命名空间定义别名 | 是 | 是 | 是 | 是 |`using` 是 C++ 中的关键字,**可以用于命名空间、类型别名以及继承**。

2025-07-19 10:00:00 656

原创 匿名函数作递归函数引用

方法核心思想优点缺点适用场景按引用捕获包装器✅ 通用,C++11即可用✅ 调用语法自然f(5)⚠️必须按引用捕获❌ 有轻微性能开销兼容旧标准 (C++11) 或需要将 Lambda 存入容器的场合。泛型 Lambda将自身作为参数传递✅ 高性能,无额外开销✅ C++14即可用❌ 调用和递归语法稍显繁琐f(f, 5)性能敏感,且使用 C++14/17/20 的现代 C++ 项目。(当前主流推荐)语言层面直接支持自引用✅ 语法最简洁、最优雅✅ 高性能。

2025-07-11 21:00:00 928

原创 【无标题】

想象一下,你想要对一个vector容器进行排序,但排序的规则比较特殊,不是简单的升序或降序。定义一个独立的全局函数或静态成员函数// 某种复杂的比较逻辑这种方式的问题是,可能只在这里用一次,却污染了全局或类的命名空间。它与使用它的代码(std::sort)在物理上是分离的,降低了代码的内聚性。定义一个函数对象(Functor)这种方式将函数和其状态封装在了一起,比全局函数要好。但问题是,为了一个简单的、只用一次的比较逻辑,就需要定义一个完整的struct或class。

2025-07-10 21:45:00 798

原创 NAT技术(网络地址转换)

NAT 是一项为了应对 IPv4 地址短缺而发明的伟大“变通”技术。它通过扮演一个“中间人”或“接线员”的角色,成功地让大规模的私有网络共享有限的公网资源。尽管它带来了一些副作用,但在IPv6(拥有近乎无限的地址空间,旨在消除对 NAT 的需求)完全普及之前,NAT 仍然是支撑现代互联网运作不可或缺的关键技术。

2025-07-10 11:20:46 790

原创 类模板的语法

类模板(class template)是 “类型的模板”——它将一个或多个类型参数或非类型参数抽象出来,让一个“通用的类框架”能在编译期被实例化成针对不同类型或不同值的具体类。通用代码复用静态多态在容器/工具类实现中最常见。

2025-07-09 20:00:00 313

原创 智能指针的注意事项

项目是否共享控制块❌ 否,各管各的✅ 是,共享引用计数是否多次delete❌ 可能✅ 不会是否会悬空指针✅ 有风险❌ 安全是否符合shared_ptr用法❌ 错误用法✅ 正确用法。

2025-06-27 15:18:58 226

原创 指针常量和常量指针

const 修饰谁,谁不能变。代码谁不能变*p,值不能变p,地址不能变两个都不能变。

2025-06-24 15:28:45 149

原创 c++读写锁

读写锁,顾名思义,是一种将“读”和“写”两种操作区分开来对待的同步原语。它允许多个线程同时进行读操作,但只允许一个线程进行写操作。为了更好地理解,我们可以将其与标准的互斥锁 (std::mutex互斥锁 (std::mutex:非常“霸道”。无论线程是想读还是想写,只要一个线程锁定了资源,其他任何线程都必须等待,不管它们想做什么。这就像一个只有一个座位的房间,一次只能进去一个人。读写锁 (:更加“智能”和高效。它遵循以下规则:读-读共享。

2025-06-19 22:00:34 416

原创 左值引用和右值引用

指的是有确定存储位置(地址)的对象,通常可以出现在赋值语句左侧。例如:变量名、解引用指针得到的对象、数组元素等都属于左值。一般指临时对象或字面常量,通常没有固定的存储地址,只能出现在赋值语句右侧。例如:字面量(42"hello")、表达式求值产生的临时结果(a + b、函数返回的非引用类型)等都属于右值。T&T&含义:引用一个,必须绑定到一个具有名字且可寻址的对象上。作用:可以通过引用直接操作原对象,不产生拷贝;常用于函数参数(接收可修改的实参)或延长临时对象的生命周期(使用const T&T&&

2025-06-03 21:39:04 1204

原创 音视频中的复用器

🎬 什么是复用器(打包(封装)成一个单一的文件格式的组件。

2025-05-29 15:31:21 656

原创 socket通信中的accept函数

m_sockfd参数输入 / 输出作用m_sockfd输入哪个监听 socket 来 acceptaddr输出客户端地址将被写到这里addr_len输入 + 输出告诉系统结构体多大、系统写入实际使用大小。

2025-05-16 10:19:38 524

原创 queue容器的成员函数

std::queue是一个容器适配器,底层默认使用std::deque。

2025-05-15 14:27:40 259

原创 mutable的作用

(若对象本身是常量)。

2025-05-15 14:15:15 418

原创 rsize和reserve的不同

函数改变size()改变capacity()构造元素常用用途reserve(n)❌ 否✅ 是❌ 否优化性能、减少扩容次数resize(n)✅ 是✅ 可能✅ 是设置真实元素个数。

2025-05-09 09:21:05 304

原创 在c++中static用在全局和局部有什么区别

在 C++ 中,static关键字的作用会根据其使用的上下文(全局作用域、局部作用域等)有所不同。

2025-05-08 16:36:18 899

原创 c++初始化结构列表

初始化列表不是赋值!必须用它来初始化 const、引用、无默认构造的成员和基类!成员初始化顺序由声明顺序决定,不是你列表里写的顺序!

2025-05-06 11:25:13 213

原创 静态成员变量和静态成员函数

public:// 仅声明:告诉编译器有这个变量count = 10;// ✅ 可以访问// 这一句是“定义 + 初始化”如果你没有这一句定义,即使你在foo()里使用countclass A {// ✅ 这不是定义类的静态成员变量,而是定义函数内的静态局部变量这里x是foo()里的局部变量,跟类成员无关。而A::x仍然必须类外定义。需求写法是否合法声明静态成员变量(类内)✅定义静态成员变量(分配内存)✅ 必须静态函数中访问静态变量x = 10;(类作用域内)✅。

2025-05-05 10:30:00 194

原创 new的几种形式

C++ 中new不只是“分配内存”,它是类型感知的对象创建机制,支持构造、析构、对齐和自定义行为,远比malloc灵活强大。

2025-05-02 15:07:53 282

原创 new和malloc的区别

new= 分配内存 + 构造对象 + 类型安全 + 异常语义;malloc= 只要一块原始字节,剩下的你自己负责。掌握两者差异,才能在系统编程与高性能场景中游刃有余。是的,你理解得基本正确操作newdeletemallocfree内存分配自动完成手动构造函数调用自动(带参数或默认)❌ 不会;需手动析构函数调用自动❌ 不会;需手动对象->~类名()安全性 / 易错性高,配合 RAII 可防泄漏容易出错,忘构造或析构都会导致 UB 或泄漏malloc。

2025-05-02 15:07:11 614

原创 257. 二叉树的所有路径

【代码】257. 二叉树的所有路径。

2025-04-29 20:44:10 271

原创 网络通信的字节序

如果还想看实际打印内存的 demo,告诉我,我可以再给你补代码。CPU 要先拿到这 4 个字节,然后再“解释”它们到底是哪一位是高位、哪一位是低位。→ 又回到了“一个值多字节”,这时才出现。不存在“系统偷偷给你变成 CBA”的情况。→ 跟普通字符串一样,不涉及字节序。→ 要把多字节拼成单个数 →。:把最低有效字节放在最低地址。:把最高有效字节放在最低地址。→ 没有再组合的步骤 →。1 字节 → 不用管字节序。统一到“网络字节序”。要做的事——它只在“1 字节 → 可能要管。是 → 需要统一字节序。

2025-04-25 15:41:50 276

原创 mmap和new/malloc的区别

PageCache 直接mmap匿名私有页,一次拿整块页对齐内存,避免进入 glibc 堆管理队列;这给了我们对页级切分、合并与回收的 100% 主动权。munmap让内存池可以把闲置 span 即时退回内核,避免双重碎片,并降低进程常驻集大小。“对多线程来说,我们绕过 glibc arena 锁,保证大块分配 O(1) sys‑call 成本,线程伸缩稳定。

2025-04-23 12:00:00 1245

原创 程序是怎么运行的

**链接器**将多个目标文件(如 `main.o`、`printf.o`)合并,解析符号引用(例如找到 `printf` 函数的实现地址),生成可执行文件(如 `a.out`)。- **步骤1**:CPU 从内存代码段读取指令 `movl $10, -4(%rbp)`,将立即数 `10` 写入栈上的变量 `x`(地址 `0x7ffd1234`)。- 预处理器处理 `#include`、`#define` 等指令,展开宏、包含头文件,生成预处理后的代码(`.i` 文件)。

2025-04-22 09:32:14 631

原创 代码是如何运行的?编译期和运行期的区分。

简单来说:编译时期:代码 → 机器指令的转换过程。运行时期:机器指令真正被 CPU 执行、程序运行的阶段。举例: 🚀 运行时期 (Runtime)程序真正运行时(CPU 执行时)做的事:举例: 🎯 三、如何快速区分编译时和运行时?(对照法) 特性 编译时期 运行时期 发生时间 编译代码时(程序未启动) 程序运行时(程序启动后) 处理对象 源代码 () 机器指令(二进制可执行文件

2025-04-21 10:29:20 969

原创 C++中const与constexpr的区别

**特性** | **编译时** | **运行时** || **对象构造** | 运行时构造 | 允许编译时构造(需 constexpr 构造函数) || **初始化时机** | 编译时或运行时 | 必须编译时 |

2025-04-17 14:58:43 824

原创 151. 反转字符串中的单词

去除多余空格利用快慢指针遍历字符串,原地复制单词并在单词之间插入单个空格。整体反转字符串将所有字符整体反转,这一步反转了单词的顺序,但单词内部也被反转。反转每个单词对每个单词分别再反转一次,使单词内部字符恢复正确顺序。返回结果得到的字符串即为“单词顺序反转且各单词间只有单个空格”的结果。这样整个处理流程既实现了去除多余空格,又完成了单词顺序反转,同时保留了每个单词内部字符的正确顺序。

2025-04-14 21:04:31 695

原创 Cmake常见指令

下面是经过大量实战提炼出来的最常用、最刚需、最清晰的 CMake 命令语法表,并附带功能备注说明👇📌 二、添加目标文件(执行程序 / 静态库 / 动态库)📌 三、包含头文件目录📌 四、链接库文件📌 如果链接系统库:📌 五、文件自动收集📌 六、设置输出路径(推荐的现代写法)📌 七、设置 C++ 标准版本📌 八、设置编译选项📌 九、设置库的输出名称或属性📌 十、指定源文件目录

2025-04-14 10:14:50 198

原创 静态库和动态库

✅ 静态库适合体积小、依赖少、无需频繁更新的程序;✅ 动态库适合大型项目、多个程序共享、经常更新库版本的情况。

2025-04-03 21:00:00 444

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除