我太菜了

喜欢写Hello World的未来程序员.

UE4中C++类型生成文件分析

反射类型分析,生成文件分析

我有故人抱剑去 斩尽春风未肯归 要解释UE4 C++中的反射,很难不讲或者少讲生成文件(*.generated.h 和 *.gen.cpp)。这是对于开发者来说,最直接能接触到的部分,也是引擎中C++动态实现的直接表现部分。 因为生成代码中有大量的宏,初见时觉得这不是给人看的23333。。。 但一点点跟着知乎上的教程,还是硬着头皮啃下来了,然后一一展开所有宏,揭开这个反射...

C++模板相关概念基础与误解

类模板、模板类、函数模板、板函数、特化

独来独往银粟地 一行一步玉沙声 最近通过UE4源码学习对象系统(反射),其中有部分模板和宏的使用发现自己不是很熟悉,这里进行一定的记录,并纠正自己以前的误解。 很多时候都分不清楚类模板/模板类,函数模板/模板函数。。。 还有就是特化和偏特化的使用区别。。。虽然自己菜,一直没用过。 特化 特化,顾名思义就是特殊处理,在模板类/模板函数的生成上进行特殊的处理。 特化分为...

UE4中C++反射概述

UObject and UHT

夜深忽梦少年事 梦啼妆泪红阑干 之前研究C/C++调试器的时候,有思考过C++反射实现的问题。按照我不成熟的设想,反射必须付出内存开销的代价,因为反射需要一定的格式化调试信息描述内存布局。不过之前在知乎上看到过,C++标准协会想实现的反射是编译期反射,目标还是零开销抽象,听说进度喜人。 用Unity的时候,C#的反射就非常好用,不过C#是直接作为Unity引擎交互的唯一脚本...

github静态博客图片路径问题

博客图片路径问题

此去与师谁共到 一船明月一帆风 整理一下github静态博客碰到的图片路径的问题。 其实我也不是太懂前端的东西,但是图片是可以设置相对路径的。 以这篇文章为例,图片的链接实际为: https://bbkgl.github.io/cloud_img/1596638446158.png 这样需要使用相对于整个仓库的根目录的路径,即 /cloud_img/15966...

进入内卷的两个秋天

关于保研和秋招

月亮很亮 亮也没用 没用也亮 从江边走回到住处的时间是九分半,跑完步后,脑子里还是清醒着。穿过闻涛路,看到街灯拨动着孤单的影子,我突然意识到,如果人一生的经历可以分阶段的话,那么我的下个阶段,就从这句话开始了。 进到小区后门,想起来前两天就是在这里,外卖小哥急切地问我,”叔叔,3幢是哪个楼”,没有来得及思考这个称呼的合理性,我给他指了指小区大门旁边的楼,小哥满怀感激地...

94. Binary Tree Inorder Traversal

94. 二叉树的中序遍历

心似已灰之木 身如不系之舟 隔了十天没写过博客了,今天的每日一题给了道二叉树中序遍历,想想这不是送积分吗。。。 题目中写了可以尝试非递归版本,于是我想了想,网上大部分关于二叉树非递归遍历的版本好像其实只是模拟二叉树遍历而已,并没有用栈模拟函数的递归调用。 于是突然就想杠一波,实现用栈模拟递归遍历二叉树。 这里几个知识点,就是函数调用本身就是栈伸缩的过程: 发生函...

51. N-Queens

51. N 皇后

唤起一天明月 照我满怀冰雪 N皇后,我记得当时八皇后我也是暴力做的,所以这次想到的也是暴力。 然后发现暴力也没问题。。。 计算是否能够攻击到: 是否同一行同一列 是否在同一条45度斜线上(直接x1 - x2 == y1 - y2)即可 class Solution { private: void dfs(vector<string> &...

486. Predict the Winner

486. 预测赢家

掬水月在手 弄花香满衣 先是一波暴力深搜,然后再套记忆化搜索。 暴力思路:递归,每个子问题都是求解出在当前区间内如果先手能取得的最大和,最后的边界就是left == right。 class Solution { private: int dfs(vector<int>& nums, int left, int right, vector<...

332. Reconstruct Itinerary

332. 重新安排行程

有约不来过夜半 闲敲棋子落灯花 图的深搜,这道题注意几个点: 不同的地点可能重复,所以邻接表的表项和判重应该都是行程下标 一开始进行排序,后面就不用考虑字符串比较了 邻接表还是用哈希表吧。 class Solution { private: static bool cmp(vector<string> &a, vector<...

679. 24 Game

679. 24 点游戏

雨中黄叶树,灯下白头人 最近刷题一直没停,但是因为做的题比较重复而且不太难,就没有写题解。 今天做了一道挺有意思的题目,然后正好周六在家休息,就写一下。 思路基本就是模拟24点的求法,我一开始认为数字的相对位置不能变,所以是用栈去模拟的。。。然后又看了下给的示例,才发现数字的位置可以任意调整的,也就是运算发生在任意两个数之间。 既然是任意两个数,那直接暴力的话应该问题不大...