从师兄那里学到的一种思想简单有效的设计模式, PIMPL即Private Implementation或Pointer to Implementation, 指的是通过一个私有的类成员指针, 将指针所指向的类的实现隐藏起来。
巧用git submodule sync更新URL
在升级项目的第三方库的时候, 使用git submodule update提示更新出错……
左移16位的妙用
在计算中点时看到一个把坐标点x, y分量相加再左移16位的神奇操作~
如何向一个基于CMake构建的项目添加库
对于CMake实在不熟, 几乎每次碰到CMake的问题都需要请教师兄, 惭愧……
OpenGL究竟是在什么时候执行透视除法的?
weak_ptr的妙用
面试的时候碰到过这样一个问题: 定义两个类, 每个类中又包含一个指向对方类型的智能指针作为成员变量, 然后创建对象, 这样会出现什么问题?
C++版并查集(精简递归)
用递归的思路写的并查集, 觉得更容易理解, 虽然此处并没有针对每一个小集合的大小进行优化, 算法执行过程当中有可能会导致某一个集合变得很大:
unordered_map<int, int> f;
int find(int x) {
if (!f.count(x)) f[x] = x;
if (x != f[x]) f[x] = find(f[x]);
return f[x];
}
void uni(int x, int y) {
x = find(x), y = find(y);
if (x != y) f[x] = y;
}
进行离屏渲染时出现窗口全白的bug
下载某个repository的单个文件夹
使用DownGit下载某个repository的单个文件夹, 直接把文件夹的链接复制粘贴到下述网址中download即可~(可能需要翻墙)
-
https://minhaskamal.github.io/DownGit/#/home
C++版并查集
大年初一的, 复习了一下并查集, 用的教材上面写的并查集实际上用起来总感觉很别扭, 比如索引不是从0开始, 没有对处于同一集合内的元素作判断, 以及用了树作为存储集合根结点的数据结构, 于是便自己写了个C++版的.
