博客园 - Deaglepc
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=125246
2021-12-17T09:22:57Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
feed.cnblogs.com
https://www.cnblogs.com/dupengcheng/p/14098041.html
代码整洁之道 - Deaglepc
关于如何写整洁代码的一些总结和思考 最近在KM上看了不少关于Code Review的文章,情不自禁的翻出《代码整洁之道》又看了一下,于是在这里顺便做个总结。其实能遵守腾讯代码规范写出来的代码质量已经不差了,这里主要是代码规范中容易犯的一些错和自己的额外总结。 目录 衡量好坏代码的标准 什么样的代码算
2020-12-07T09:00:00Z
2020-12-07T09:00:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】关于如何写整洁代码的一些总结和思考 最近在KM上看了不少关于Code Review的文章,情不自禁的翻出《代码整洁之道》又看了一下,于是在这里顺便做个总结。其实能遵守腾讯代码规范写出来的代码质量已经不差了,这里主要是代码规范中容易犯的一些错和自己的额外总结。 目录 衡量好坏代码的标准 什么样的代码算 <a href="https://www.cnblogs.com/dupengcheng/p/14098041.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/14098008.html
redis6.0?多线程?到底发生肾么事了? - Deaglepc
背景 redis一直以来都是以单线程模式运行,这里的单线程指网络IO和命令的执行部分。今年发布了6.0版本,加上了多线程来处理网络IO(read,write)和命令的解析。 单线程模式优缺点 这个想必大家都知道,简单介绍一下。 优点: 纯内存操作,CPU不是其性能瓶颈,开多个进程也可以更容易的使用多
2020-12-07T08:55:00Z
2020-12-07T08:55:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】背景 redis一直以来都是以单线程模式运行,这里的单线程指网络IO和命令的执行部分。今年发布了6.0版本,加上了多线程来处理网络IO(read,write)和命令的解析。 单线程模式优缺点 这个想必大家都知道,简单介绍一下。 优点: 纯内存操作,CPU不是其性能瓶颈,开多个进程也可以更容易的使用多 <a href="https://www.cnblogs.com/dupengcheng/p/14098008.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/12616447.html
推荐几个jetbrains全家桶好用的插件,同时作为备忘 - Deaglepc
推荐几个jetbrains全家桶好用的插件,同时作为备忘 我这里是用了:CLion PyCharm GoLand,理论上所有jetbrains其他IDE也可以 "Material Theme UI" 主题插件,很多主题可以选,一个好看的界面可以大幅提升编码效率! ![Material][UI] "Q
2020-04-01T14:26:00Z
2020-04-01T14:26:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】推荐几个jetbrains全家桶好用的插件,同时作为备忘 我这里是用了:CLion PyCharm GoLand,理论上所有jetbrains其他IDE也可以 "Material Theme UI" 主题插件,很多主题可以选,一个好看的界面可以大幅提升编码效率! ![Material][UI] "Q <a href="https://www.cnblogs.com/dupengcheng/p/12616447.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/8644841.html
win32 获取本机网卡信息(MAC地址,IP地址等) - Deaglepc
由于一个需求需要获取网卡的MAC地址,就搜了一下,大部分都是COPY来COPY去的一些代码,有很多甚至不能直接运行或有还有内存泄漏。自己查了一下MSDN然后封装了一下; 需要注意,一个机器可能有多个网卡(包含虚拟网卡),一个网卡可能有多个IP 主要用到了 GetAdaptersInfo 这个API,
2018-03-25T07:22:00Z
2018-03-25T07:22:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】由于一个需求需要获取网卡的MAC地址,就搜了一下,大部分都是COPY来COPY去的一些代码,有很多甚至不能直接运行或有还有内存泄漏。自己查了一下MSDN然后封装了一下; 需要注意,一个机器可能有多个网卡(包含虚拟网卡),一个网卡可能有多个IP 主要用到了 GetAdaptersInfo 这个API, <a href="https://www.cnblogs.com/dupengcheng/p/8644841.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/8626512.html
centos7 安装 mysql-python时 报错 EnvironmentError: mysql_config not found - Deaglepc
然后报错 EnvironmentError: mysql_config not found 网上搜解决方法,需要安装 mysql-devel 然后 也无法安装,报错内容大概是和mysql版本相关的问题 解决方法 自己下载和自己mysql版本匹配的mysql-devel 1.查看安装了什么版本的mys
2018-03-22T12:46:00Z
2018-03-22T12:46:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】然后报错 EnvironmentError: mysql_config not found 网上搜解决方法,需要安装 mysql-devel 然后 也无法安装,报错内容大概是和mysql版本相关的问题 解决方法 自己下载和自己mysql版本匹配的mysql-devel 1.查看安装了什么版本的mys <a href="https://www.cnblogs.com/dupengcheng/p/8626512.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7785005.html
VS2013 中使用 CxImage 库时用Unicode编码时出现链接错误 - Deaglepc
CxImage 本身是支持Unicode 编码的,编译CxImage库的时候选择编译Unicode就可以了,得到的lib文件和dll文件很容易看出有个u的就是Unicode编码的 当然在使用的时候要对应项目该使用哪种库,为了方便,在使用动态库时,我选择全部导入 Debug Unicode_Debug
2017-11-04T15:11:00Z
2017-11-04T15:11:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】CxImage 本身是支持Unicode 编码的,编译CxImage库的时候选择编译Unicode就可以了,得到的lib文件和dll文件很容易看出有个u的就是Unicode编码的 当然在使用的时候要对应项目该使用哪种库,为了方便,在使用动态库时,我选择全部导入 Debug Unicode_Debug <a href="https://www.cnblogs.com/dupengcheng/p/7785005.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662693.html
剑指offer-二叉搜索树的后序遍历序列 - Deaglepc
根据二叉搜索树的性质,根节点最小,那么后序遍历的最后一个元素一定是根节点也是最小的,比这个结点小的就是左子树,大的就是右子树,然后递归判断,如果还有元素没有被遍历到那么这个序列就不是正确的后序遍历
2017-10-13T10:36:00Z
2017-10-13T10:36:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】根据二叉搜索树的性质,根节点最小,那么后序遍历的最后一个元素一定是根节点也是最小的,比这个结点小的就是左子树,大的就是右子树,然后递归判断,如果还有元素没有被遍历到那么这个序列就不是正确的后序遍历 <a href="https://www.cnblogs.com/dupengcheng/p/7662693.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662671.html
剑指offer-顺时针打印矩阵 - Deaglepc
每个人有不同的方法,我用四个变量标记边界 class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int l,r,t,b; l = 0, r = matrix[0
2017-10-13T10:31:00Z
2017-10-13T10:31:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】每个人有不同的方法,我用四个变量标记边界 class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int l,r,t,b; l = 0, r = matrix[0 <a href="https://www.cnblogs.com/dupengcheng/p/7662671.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662665.html
剑指offer-二叉树的镜像 - Deaglepc
先序遍历,交换子树即可,注意空节点的情况,这种简单题考的就是细节... /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL),
2017-10-13T10:29:00Z
2017-10-13T10:29:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】先序遍历,交换子树即可,注意空节点的情况,这种简单题考的就是细节... /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), <a href="https://www.cnblogs.com/dupengcheng/p/7662665.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662661.html
剑指offer-合并两个排序的链表 - Deaglepc
从小的开始作为头结点,然后比较选择较小的进行链接 需要注意头结点确定的时候就要保存下来,因为后面会一直变化往后链接新元素 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL)
2017-10-13T10:27:00Z
2017-10-13T10:27:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】从小的开始作为头结点,然后比较选择较小的进行链接 需要注意头结点确定的时候就要保存下来,因为后面会一直变化往后链接新元素 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) <a href="https://www.cnblogs.com/dupengcheng/p/7662661.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662655.html
剑指offer-链表中倒数第K个结点 - Deaglepc
这个题貌似经常听说? 两个指针,指针1指向头,指针2指向头+k的位置,指针2到达尾部的时候指针1就是答案 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*
2017-10-13T10:25:00Z
2017-10-13T10:25:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】这个题貌似经常听说? 两个指针,指针1指向头,指针2指向头+k的位置,指针2到达尾部的时候指针1就是答案 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };* <a href="https://www.cnblogs.com/dupengcheng/p/7662655.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662436.html
剑指offer-二进制中1的个数 - Deaglepc
注意负数转换成补码计算 我的方法比较奇葩,把负数的补码用正数表示,结果加1就是答案,因为负数的符号位是1
2017-10-13T10:02:00Z
2017-10-13T10:02:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】注意负数转换成补码计算 我的方法比较奇葩,把负数的补码用正数表示,结果加1就是答案,因为负数的符号位是1 <a href="https://www.cnblogs.com/dupengcheng/p/7662436.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7662421.html
剑指offer-矩形覆盖 - Deaglepc
看到第n个矩形相对与第n-1个是多了一行1*2的小矩形,这个新的小矩形能如何贡献价值? 第一种情况,它直接被一个1*2的小矩形覆盖,剩余部分如何填充就是没有加新的小矩形之前的也就是和第n-1个矩形产生的结果相同 第二种情况,它的每个1*1的小矩形分别放一个1*2矩形的一半,这样就要浪费原来的一行矩形
2017-10-13T09:59:00Z
2017-10-13T09:59:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】看到第n个矩形相对与第n-1个是多了一行1*2的小矩形,这个新的小矩形能如何贡献价值? 第一种情况,它直接被一个1*2的小矩形覆盖,剩余部分如何填充就是没有加新的小矩形之前的也就是和第n-1个矩形产生的结果相同 第二种情况,它的每个1*1的小矩形分别放一个1*2矩形的一半,这样就要浪费原来的一行矩形 <a href="https://www.cnblogs.com/dupengcheng/p/7662421.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7660801.html
剑指offer-变态跳台阶 - Deaglepc
找规律发现答案是2n-1 其实对于第n个台阶,相对于前一个状态多了一个台阶,那么我们可以把第n-1个台阶看作一种走法,即走n-1个台阶或者走1个台阶,那么就是先走1个再走n-1个或者先走n-1个再走1个台阶即可到达 那么可以得到 dp[n] = dp[n - 1] * 2; dp[1] = 1; c
2017-10-13T05:53:00Z
2017-10-13T05:53:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】找规律发现答案是2n-1 其实对于第n个台阶,相对于前一个状态多了一个台阶,那么我们可以把第n-1个台阶看作一种走法,即走n-1个台阶或者走1个台阶,那么就是先走1个再走n-1个或者先走n-1个再走1个台阶即可到达 那么可以得到 dp[n] = dp[n - 1] * 2; dp[1] = 1; c <a href="https://www.cnblogs.com/dupengcheng/p/7660801.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7660427.html
剑指offer-旋转数组的最小数字 - Deaglepc
二分,注意边界 其实就是数组有两部分,都是升序的,左边部分都比右边部分大,暂且称左序列和右序列 所以当 left 指向的元素比 mid 值小,说明是指向了左序列,左指针右移,left=mid 当 right 指向的元素比 mid 的大, 说明是指向了右序列,右指针左移, right = mid 这样
2017-10-13T03:48:00Z
2017-10-13T03:48:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】二分,注意边界 其实就是数组有两部分,都是升序的,左边部分都比右边部分大,暂且称左序列和右序列 所以当 left 指向的元素比 mid 值小,说明是指向了左序列,左指针右移,left=mid 当 right 指向的元素比 mid 的大, 说明是指向了右序列,右指针左移, right = mid 这样 <a href="https://www.cnblogs.com/dupengcheng/p/7660427.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7660296.html
剑指offer-用两个栈实现队列 - Deaglepc
这题也很容易想到:一个栈出栈到另一个栈,然后另一个栈再出栈的顺序将是队列的顺序(原序列逆序的逆序是正序) 思路:两个栈,stack1,stack2; stack1负责存放元素,stack2负责暂时存放stack1的一次出栈,为了改变stack1里面元素的存放顺序 入栈操作:1.先将stack1依次出
2017-10-13T03:32:00Z
2017-10-13T03:32:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】这题也很容易想到:一个栈出栈到另一个栈,然后另一个栈再出栈的顺序将是队列的顺序(原序列逆序的逆序是正序) 思路:两个栈,stack1,stack2; stack1负责存放元素,stack2负责暂时存放stack1的一次出栈,为了改变stack1里面元素的存放顺序 入栈操作:1.先将stack1依次出 <a href="https://www.cnblogs.com/dupengcheng/p/7660296.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7660014.html
剑指offer-从尾到头打印链表 - Deaglepc
水题,可以立刻想到的方法是 1.从头到尾遍历,依次入栈,然后出栈。时间复杂度和空间复杂度都是O(n) 2.先反转链表,然后遍历。时间复杂度O(n),空间O(1) 3.先放到数组,再倒序存一遍,和方法1思想相同,也是最蠢的方法。 其他方法自己想吧... 最蠢的我贴出最蠢的代码- - /** * str
2017-10-13T02:54:00Z
2017-10-13T02:54:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】水题,可以立刻想到的方法是 1.从头到尾遍历,依次入栈,然后出栈。时间复杂度和空间复杂度都是O(n) 2.先反转链表,然后遍历。时间复杂度O(n),空间O(1) 3.先放到数组,再倒序存一遍,和方法1思想相同,也是最蠢的方法。 其他方法自己想吧... 最蠢的我贴出最蠢的代码- - /** * str <a href="https://www.cnblogs.com/dupengcheng/p/7660014.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7658932.html
win32 获取 HotKey 控件中的内容(HKM_GETHOTKEY) - Deaglepc
windows给我们提供了一个对话框控件HotKey非常好用,在设置热键的时候用起来很爽,但是一直百度就是没找到在win32下怎样通过消息获取这个控件里面的内容,找到的都是用MFC封装好的控件类来操作的,终于在MSDN找到了答案… 翻译过来就是要给控件发送这个消息 HKM_GETHOTKEY 头文件
2017-10-12T16:19:00Z
2017-10-12T16:19:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】windows给我们提供了一个对话框控件HotKey非常好用,在设置热键的时候用起来很爽,但是一直百度就是没找到在win32下怎样通过消息获取这个控件里面的内容,找到的都是用MFC封装好的控件类来操作的,终于在MSDN找到了答案… 翻译过来就是要给控件发送这个消息 HKM_GETHOTKEY 头文件 <a href="https://www.cnblogs.com/dupengcheng/p/7658932.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7205527.html
C++单例模式 - Deaglepc
单例模式是任何面向对象语言绕不过的,单例模式是很有必要的,接下来我用最朴素的语言来解释和记录单例模式的学习。 什么是单例模式? 单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。 创建一个单例模式的类(初想) 一个类只能有一个实例化的对象,那么这个类就要禁止别人new出来
2017-07-19T06:14:00Z
2017-07-19T06:14:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】单例模式是任何面向对象语言绕不过的,单例模式是很有必要的,接下来我用最朴素的语言来解释和记录单例模式的学习。 什么是单例模式? 单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。 创建一个单例模式的类(初想) 一个类只能有一个实例化的对象,那么这个类就要禁止别人new出来 <a href="https://www.cnblogs.com/dupengcheng/p/7205527.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dupengcheng/p/7159907.html
QTCreator 更改代码高亮主题为 VS+VA助手 风格 - Deaglepc
VS Dark-VA 主题下载地址 链接: https://pan.baidu.com/s/1eTuXOcU 密码: wzux 另外还有喜欢 solarized 配色的也可以从这里下载 https://github.com/curonian/qtcreator-solarized 1.首先说明一下Q
2017-07-13T05:08:00Z
2017-07-13T05:08:00Z
Deaglepc
https://www.cnblogs.com/dupengcheng/
【摘要】VS Dark-VA 主题下载地址 链接: https://pan.baidu.com/s/1eTuXOcU 密码: wzux 另外还有喜欢 solarized 配色的也可以从这里下载 https://github.com/curonian/qtcreator-solarized 1.首先说明一下Q <a href="https://www.cnblogs.com/dupengcheng/p/7159907.html" target="_blank">阅读全文</a>