自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速排序的学习理解:从基础分治到三路划分优化

每一轮先选择一个基准元素 pivot,然后通过划分操作,把小于 pivot 的元素放到左侧,把大于 pivot 的元素放到右侧,pivot 最终落位。如果输入本身已经有序,并且每次固定选择最左端元素作为 pivot,那么划分会出现非常不均衡的情况:pivot 已经把整个序列扫描了一遍,结果却只切出一个元素,剩下的元素仍然留在同一侧。针对有序输入退化,一个简单有效的优化是随机选择 pivot:在 low 到 high 范围内随机取一个下标,再把这个位置上的元素换到最左端,继续使用原来的划分逻辑。

2026-10-20 13:37:20 174

原创 四元数的学习理解

因为在 3D 空间里,不管你先绕 X 转、再绕 Y 转、再绕 Z 转、再绕奇怪的轴转。最终姿态,总能找到:某一根轴 Axis + 某一个角度 θ,一次旋转直接转过去。这就是所谓的 Axis-Angle。

2026-10-15 22:46:26 65

原创 VisualBoyAdvance 1.8 空格加速太快怎么办?固定 400% 倍速方案(兼容 PokemonMemHack)

这个问题最终的核心不是“VBA 不能加速”,而是:VisualBoyAdvance 1.8 的 Space Speedup 默认属于近似无限速模式,并没有提供独立的固定倍率设置。正常:不调节按住 Space:固定 400%松开:不调节既保留了老版 VBA,也不会影响原来的 PokemonMemHack 使用。如果你遇到的也是:VBA 一按 Space 就 8000%~10000%,而且又因为 PokemonMemHack 不能换 VBA-M,这个方法应该会比较适合。

2026-08-26 01:36:55 626

原创 UE4 垃圾回收(GC)机制详解:从可达性分析到 Mark/Sweep

整篇文章压缩成一句话:UE 的 GC 会定期从“肯定活着的对象”出发,沿着 UObject 的引用关系往下找;文章中的测试也展示了:通过 SpawnActor 创建的 Actor,即使本地指针置空并强制 GC,Actor 仍可能保持可达。UE 先找一批:“这些员工确定还在公司。你虽然从 C++ 的角度保存了一个指针,但是:UE 的 GC 不一定知道这是一条需要追踪的 UObject 引用。所以第一个非常重要的结论:UObject 一般不是通过 delete 来管理生命周期,而是交给 UE 的 GC。

2026-08-23 15:15:37 268

原创 C++ STL 知识点整理

hash(key1)hash(key2)最终落到同一个 bucket。就叫:哈希冲突。链地址法开放寻址标准库具体实现不要求固定方案,不过常见 unordered_* 实现使用 bucket 结构。

2026-08-17 10:51:12 160

原创 C++ 四种显式类型转换深度解析:从 static_cast 到 dynamic_cast 与 RTTI

本文深入解析 C++ 中四种显式类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)的核心原理、使用场景与区别。重点探讨 dynamic_cast 与 RTTI(运行时类型信息)的关系,厘清 dynamic_cast 与虚函数在多态设计中的不同角色,并提供大量代码示例和面试常见问题解答。

2026-08-16 23:40:10 379

原创 C++ 右值引用、移动语义与完美转发:原理剖析

std::move 本质上是一个类型转换,把表达式转换为右值类别(通常是 xvalue),从而使移动构造函数或移动赋值运算符有机会被调用。如果你的移动构造可能抛异常,标准库为了保证异常安全,有时会宁愿选择拷贝。它的作用是:如果原来传进来的是左值,就继续当左值;如果原来传进来的是右值,就继续当右值。在深入右值引用之前,必须先理解左值(lvalue)和右值(rvalue)的基本概念。有名字,所以永远是左值表达式,右值信息就丢了。的原值了,你可以把它当右值。,那两个都会变成“左值 左值”,因为有名字的。

2026-08-16 23:24:45 522

原创 C++智能指针完全指南:从原理到实战

智能指针的出现,正是为了解决这些痛点。简单来说,智能指针仍然是“指针”,但它会帮你自动管理。通常内部保存被管理对象的指针以及指向控制块的状态。,本质上是:一个普通的C++对象,内部保存一个指针,在自己的析构函数里自动释放资源。就不会执行,导致内存泄漏。于是,程序员很自然地想到:能不能让一个对象帮我保管这个指针,在它自己销毁的时候自动。,从为什么需要它们开始,逐步深入到原理、使用场景和面试高频考点。干脆禁止拷贝,这和前面学习的浅拷贝、重复释放问题直接关联。语句,这也是现代C++特别重要的编程思想。

2026-08-13 17:10:47 318

原创 深入理解 new 与 delete:从内存分配到对象生命周期

new T↓ 申请一块内存↓ 构造一个 T↓ 返回 T*delete p↓ 析构一个 T↓ 释放内存new T[n]↓ 申请连续内存↓ 构造 n 个 T↓ 返回第一个 T 的地址delete[] p↓ 析构 n 个 T↓ 释放整块内存永远保持new配deletenew[]配delete[],即使面对简单类型也不要混用。理解背后的内存模型和对象生命周期,才能写出更可靠的 C++ 代码。

2026-08-12 14:47:52 503

原创 C++ Lambda 表达式完全指南

写法含义[]不捕获任何外部变量[=]值捕获所有变量[&]引用捕获所有变量[x]值捕获 x[&x]引用捕获 x[=, &x]默认值捕获,x 引用捕获[&, x]默认引用捕获,x 值捕获。

2026-08-12 14:40:12 504

原创 UE里为什么要有提升变量

当一个类里面的函数比较多,并且使用比较频繁的时候,就要不断的从这个类节点往外拉线,从而获取不同的函数节点,这样的蓝图就会看起来比较乱,这时候,就可以将这个常用的类提升为变量。

2025-09-08 20:31:04 356

原创 用SVN提交修改但却识别不到的解决办法

在使用SVN过程中遇到的问题

2025-08-25 16:57:48 767

原创 UE5多语言本地化底层代码逻辑梳理

一起来深挖下虚幻的多语言本地化系统吧

2025-08-20 21:02:17 1274

原创 设计模式学习之单例模式

单例,一种很孤独的模式

2025-04-15 10:39:41 1224

原创 《C++ primer plus》学习记录之函数指针

与数据项相似,函数也有地址。函数的地址是存储其机器语言代码的内存的开始地址。通常,这些地址对用户而言,既不重要,也没有什么用处,但对程序而言,却很有用。可以编写将另一个函数的地址作为参数的函数。这样第一个函数将能够找到第二个函数,并运行它。与直接调用另一个函数相比,这种方法很笨拙,但它允许在不同的时间传递不同函数的地址,这意味着可以在。

2025-04-12 18:16:04 1004

原创 工厂三兄弟之抽象工厂模式

你懂我的抽象吗

2025-04-08 11:42:02 726

原创 工厂三兄弟之工厂方法模式

工厂模式和简单工厂有啥区别?是兄弟还是姐妹?

2025-04-08 08:42:09 792

原创 UE5DirectionLight中shaft功能(光束泛光)

下面有一个光束泛光的选项,勾选上,(还可以调节强度大小),你的太阳光线在穿过树木时就会有丁达尔效应了,如图。在大纲中选中DirectionLight.(就是你世界里天空中的太阳)在搜索栏中搜索shaft。记住现在这棵树的样子。

2025-04-07 22:53:14 450

原创 UE5中postProcessVolume的bloom用法

搜索框继续搜bloom.勾选上强度后就可以在强度右边的数值框进行调节。调节到0时太阳一点都没有光晕,稍微调大点就会有明显的光晕。拖动后期处理体积到世界中,然后勾选上红框内容。bloom用来调节太阳的光晕程度。

2025-04-07 22:43:59 702

原创 《C++ Primer plus》学习记录,const和指针的爱恨情仇

int *const和const int *傻傻分不清?进来看看吧

2025-04-07 21:37:38 727

原创 二叉树理论基础

这两种树的节点都是没有数值的,下面说的是有数值的了。

2025-03-21 18:49:20 946

原创 以太网的基本知识

这个结构看上去和(b)很像,但其实里 面有一个重要的变化,即信号会发送给所有设备这一性质变了,现在信号只 会流到根据MAC地址指定的设备,而不会到达其他设备了。也就是说,将包发送到MAC头部的接收 方MAC地址所代表的目的地,用发送方MAC地址识别发送方,在这些 方面无线局域网和以太网是一样的。因此,当一台计算机发送信号时, 信号就会通过网线流过整个网络,最终到达所有的设备。这样一来就能够判断信号的接收者了,与接收者地址匹配的 设备就接收这个包,其他的设备则丢弃这个包,这样我们的包就送到指定的目的地了。

2025-03-19 12:19:34 577

原创 经济学原理微观经济学分册学习(1)

当政府通过增发货币弥补支出时,实际被“征税”的是**持有货币的全体民众 ,尤其是 现金储蓄者、固定收入群体 以及 无法快速调整收入与价格的人。例如,若通胀率为10%,而存款利率为2%,储蓄者的购买力净损失8%。- 对技能不足或有特殊障碍(如残疾)的人群,时间限制可能导致其陷入贫困,但政策主要目标群体为“有工作能力者”。对于有工作能力但犹豫不决的人群,政策通过减少“等待选项”的价值,提高其主动求职的边际收益。如果工作后领取的津贴因收入增加而减少,部分人可能反而增加储蓄以弥补退休后潜在的收入缺口。

2025-03-18 22:43:39 790

原创 设计模式:工厂三兄弟之简单工厂模式

对学习做个记录引用一下别人的文章,首先谈谈工厂的作用,工厂模式(包括简单工厂模式、工厂方法模式和抽象工厂模式)到底有什么用,很多时候通过反射机制就可以很灵活地创建对象,为毛还要工厂?,在本文中我将围绕和来简单谈谈工厂的作用。对象本身的职责比较容易理解,就是对象自身所具有的一些数据和行为,可通过一些公开的方法来实现它的职责。在Java语言中,我们通常有以下几种创建对象的方式:(1) 使用new关键字直接创建对象;(2) 通过反射机制创建对象;(3) 通过clone()方法创建对象;

2025-03-18 21:58:14 1297

空空如也

空空如也

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

TA关注的人

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