摘要: 单例模式是任何面向对象语言绕不过的,单例模式是很有必要的,接下来我用最朴素的语言来解释和记录单例模式的学习。 什么是单例模式? 单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。 创建一个单例模式的类(初想) 一个类只能有一个实例化的对象,那么这个类就要禁止别人new出来 阅读全文
posted @ 2017-07-19 14:14 Deaglepc 阅读(25458) 评论(3) 推荐(16) 编辑
摘要: 在开始之前我们先介绍3个定理: 1.乘法逆元(在维基百科中也叫倒数,当然是 mod p后的,其实就是倒数不是吗?): 如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。 2.费马小定理(定义来自维基百科): 假如a是一个整数,p是一个质数,那么是p的倍 阅读全文
posted @ 2016-05-12 21:16 Deaglepc 阅读(51159) 评论(3) 推荐(14) 编辑
摘要: 关于如何写整洁代码的一些总结和思考 最近在KM上看了不少关于Code Review的文章,情不自禁的翻出《代码整洁之道》又看了一下,于是在这里顺便做个总结。其实能遵守腾讯代码规范写出来的代码质量已经不差了,这里主要是代码规范中容易犯的一些错和自己的额外总结。 目录 衡量好坏代码的标准 什么样的代码算 阅读全文
posted @ 2020-12-07 17:00 Deaglepc 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 背景 redis一直以来都是以单线程模式运行,这里的单线程指网络IO和命令的执行部分。今年发布了6.0版本,加上了多线程来处理网络IO(read,write)和命令的解析。 单线程模式优缺点 这个想必大家都知道,简单介绍一下。 优点: 纯内存操作,CPU不是其性能瓶颈,开多个进程也可以更容易的使用多 阅读全文
posted @ 2020-12-07 16:55 Deaglepc 阅读(314) 评论(0) 推荐(1) 编辑
摘要: 推荐几个jetbrains全家桶好用的插件,同时作为备忘 我这里是用了:CLion PyCharm GoLand,理论上所有jetbrains其他IDE也可以 "Material Theme UI" 主题插件,很多主题可以选,一个好看的界面可以大幅提升编码效率! ![Material][UI] "Q 阅读全文
posted @ 2020-04-01 22:26 Deaglepc 阅读(6718) 评论(0) 推荐(0) 编辑
摘要: 由于一个需求需要获取网卡的MAC地址,就搜了一下,大部分都是COPY来COPY去的一些代码,有很多甚至不能直接运行或有还有内存泄漏。自己查了一下MSDN然后封装了一下; 需要注意,一个机器可能有多个网卡(包含虚拟网卡),一个网卡可能有多个IP 主要用到了 GetAdaptersInfo 这个API, 阅读全文
posted @ 2018-03-25 15:22 Deaglepc 阅读(3358) 评论(0) 推荐(0) 编辑
摘要: 然后报错 EnvironmentError: mysql_config not found 网上搜解决方法,需要安装 mysql-devel 然后 也无法安装,报错内容大概是和mysql版本相关的问题 解决方法 自己下载和自己mysql版本匹配的mysql-devel 1.查看安装了什么版本的mys 阅读全文
posted @ 2018-03-22 20:46 Deaglepc 阅读(11139) 评论(1) 推荐(2) 编辑
摘要: CxImage 本身是支持Unicode 编码的,编译CxImage库的时候选择编译Unicode就可以了,得到的lib文件和dll文件很容易看出有个u的就是Unicode编码的 当然在使用的时候要对应项目该使用哪种库,为了方便,在使用动态库时,我选择全部导入 Debug Unicode_Debug 阅读全文
posted @ 2017-11-04 23:11 Deaglepc 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: 根据二叉搜索树的性质,根节点最小,那么后序遍历的最后一个元素一定是根节点也是最小的,比这个结点小的就是左子树,大的就是右子树,然后递归判断,如果还有元素没有被遍历到那么这个序列就不是正确的后序遍历 阅读全文
posted @ 2017-10-13 18:36 Deaglepc 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 每个人有不同的方法,我用四个变量标记边界 class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int l,r,t,b; l = 0, r = matrix[0 阅读全文
posted @ 2017-10-13 18:31 Deaglepc 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 先序遍历,交换子树即可,注意空节点的情况,这种简单题考的就是细节... /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), 阅读全文
posted @ 2017-10-13 18:29 Deaglepc 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 从小的开始作为头结点,然后比较选择较小的进行链接 需要注意头结点确定的时候就要保存下来,因为后面会一直变化往后链接新元素 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) 阅读全文
posted @ 2017-10-13 18:27 Deaglepc 阅读(213) 评论(0) 推荐(0) 编辑