9 AlbertS

尚未进行身份认证

我要认证

快乐的看待每一天,我真的非常幸福

等级
TA的排名 3k+

C++中优先队列priority_queue的基础用法

学习优先队列之前先看个单词队列 queue, 这个单词的读法很多人都能独对吧,音标是 `/kjuː/` ,再看一个双端队列 deque,它的音标是 `/dek/`,应该有人读错了吧,反正我是没读对,刚开始看见一次错一次,现在还好了,基本能记住怎么读了,可是这些队列怎么用呢...

2020-09-12 17:28:51

git log根据特定条件查询日志并统计修改的代码行数

想要统计就得有数据源,而 `git log` 命令恰恰就能提供这个数据源,`git log` 本身就是一个显示日志的命令,日志记录的是代码库变化的数据,类似于描述代码库变化的 “史书”,想要描述历史就需要大量的数据支撑,想要统计修改的代码行数,只要我们从历史记录中找到需要计算的部分就可以了...

2020-09-07 00:31:06

Python中时间戳、时间字符串、时间结构对象之间的相互转化

使用 Python 写程序的时候常常要查看中间结果,需要把一些内容记录到日志中,为了不让新产生的日志覆盖之前的日志文件,所以通常使用时间字符串来作为文件名,类似于 `2020827_233842.log` 这种格式...

2020-08-30 22:16:54

GDB调试指北-启动调试或者附加到进程

要想使用 `gdb` 调试程序,必须让 `gdb` 程序和被调试程序建立联系,这种联系可以通过程序的可执行文件、core文件或者正在运行的进程来建立,具体调试的时候使用的选项不同,涉及到参数的传递,选项的顺序,多进程启动前的设置等等...

2020-08-25 00:29:31

Redis源码-BFS方式浏览main函数

欠下的技术债慢慢还,继续为去年吹过的牛而努力。去年年末的时候意识到自己掌握的知识还不够深入,决定开始看一些开源项目的源码,因为当时 `Redis` 的兴起,所以瞄准了准备从它下手,之后确实看了一部分内容,比如跳表、网络事件库等等,后来过年就鸽了。今年开始一直熟悉新的业务,比较懒没跟进,最近间歇性踌躇满志又发作了...

2020-08-16 00:09:26

GDB调试指北-启动GDB并查看说明信息

学习 `gdb` 使用是一个漫长的过程,先了解一下 `gdb` 的启动方式和基础信息的查看方法,能够帮助我们更全面的认知这个工具。`gdb` 是一个交互式命令行程序,在使用 `gdb` 调试的时候不断的在命令行内输入命令,然后 `gdb` 程序就会给出反馈信息,这在很大程序上可以帮助我们调试程序问题...

2020-08-08 00:15:03

小白眼中的docker究竟是个什么东西

`Docker`,中文名:容器引擎,别名:小鲸鱼,生于2013年3月20日,有一个法裔美籍的母亲 `Solumon Hykes`,父亲是谁,不得而知。虽然只有7岁,但是在 `Hello World` 平行宇宙中也算进入了青壮年吧,正在飞速的发展着...

2020-08-01 00:37:01

GDB调试指北大全

`GDB` 作为程序调试利器,是一个受通用公共许可证(GPL)保护的自由软件,全称是 `GNU Debugger`,又常常被称为 `GNU symbolic debugger` 或者 `GNU project debugger`,能够帮助开发者调试程序,分析应用程序运行过程。目前支持调试 `C`、 `C++`、 `D`、 `Go`、 `Objective-C`、 `Fortran`、 `Java`、 `OpenCL C`、 `Pascal`、 `assembly`、 `Modula-2`、 `Ada` ..

2020-07-26 00:22:31

gdb调试解决找不到源代码的问题

通过 `gdb` 启动程序,打好断点运行,开始调试输入 `list` 命令,结果发现找不到源代码,是不是很糟心,让我们来看看怎么解决这种情况...

2020-07-18 23:16:49

Shell脚本中获取命令运行结果、特殊变量使用、条件判断等常用操作

最近在处理一个 `Python` 局部变量的作用域问题时发现有些奇怪,想起了之前常写的 `Lua` 脚本,于是想写个函数测试一下,结果发现短短的十几行代码出现了多个错误,这可是我写了近三年的代码啊,才放下半年就记不清了,所以知识这个东西还是要不断“温故”,今天要总结的 `Shell` 脚本命令也是,基本属于一看就会,一写不对的状态,所以还是要把常用的操作总结到一起,方便查找和复习...

2020-07-11 00:49:49

根证书的应用和信任基础

人生在世总要相信点什么,信亲人、信朋友、信你面前的陌生人,即便这些你都不信,也要信自己吧,假如连自己都不信了,那在地球上恐怕很难生存了。我们把钱存入银行,因为我们相信当我们需要用钱时可以通过银行卡把钱取出来;我们拿着车票准时来到候车大厅,因为我们相信除非特殊情况,我们买的那趟车绝不会提前丢下我们而去;遇到纠纷我们会选择打官司,因为我们相信法官最后会给我们公正的判决结果...

2020-07-06 00:11:45

C++中的std::lower_bound()和std::upper_bound()函数

问题是躲不掉的,该来的总会来,这不是代码中又遇到了 `std::upper_bound()` 函数,再来学习一遍好了,在我的印象中每次看到这 `lower_bound` 和 `upper_bound` 两个函数都有些别扭,凡是见到他们必须查一遍,因为我记得它们两个函数的作用不对称,这一点记得很清楚,但是它们两个函数查找的细节却记不住,这次总结一下,强化记忆,下次回忆起来应该会快一点...

2020-06-26 23:33:05

码龄10年工作6年的搬砖小哥,最常访问的学习网站都在这里了

最近看到一篇总结学习网站的文章,发现很有收藏价值,所以也想试着把自己常用的学习网站总结到一起,之前确实用过一些比较好的网站,有些网站是查找问题时找到的,但是解决完问题就找不到了很可惜,所以我养成了收藏网址的习惯,感觉有用就会分门别类的添加到书签中,再次遇到之前解决过的问题就先在书签里搜一下,有时候会加快解决问题的进度...

2020-06-20 00:19:24

认证、HTTPS、证书的基本含义

其实密码技术除了应用在加密领域外还有很多其他的用途,比如验证数据的完整性、用来做认证、提供一些不可否认的证据等,这些应用也常常出现在我们的日常生活中,比如很多官方网站在提供软件下载链接的同时,还附带一个验证的字符串,实际上很多就是md5码或者hash码,这些就是供下载的人来验证完整性的,防止被其他人篡改...

2020-06-14 23:44:17

对称加密、非对称加密、公钥、私钥究竟是个啥?

世界上有没有不能破解的密码或加密方式?还真有一种,叫做一次性密码本,这时唯一一种不能破解的加密方式,而其他的密码只要时间无限理论上都是可破解的,如果你也对加密这个领域感兴趣,可以简单了解下这些概念...

2020-06-07 23:29:20

git在回退版本时HEAD~和HEAD^的作用和区别

今天总结一个小知识点,虽然不难,但是对新手有很强的迷惑性,了解一下也挺好。我们在使用 Git 回退到版本的时候,可能见过这种写法 `git reset --hard HEAD~`,有时候也会遇到这种写法 `git reset --hard HEAD^`,这两个语句都是将代码库还原到上一个版本,但是只差了一个符号,他们究竟有什么区别呢?这里先给出结论:`HEAD~` 和 `HEAD^` 含义不同,功能一样...

2020-05-31 15:18:26

配置Beyond Compare 4作为git mergetool来解决git merge命令导致的文件冲突

使用 `git merge` 命令合并代码的时候可能会产生文件冲突,产生这种冲突的根本原因是文件的同一处同时被多次修改,这种同时修改常体现的不同分支上,当多个分支修改了同一处代码,再合并代码的时候就会产生冲突,因为 `git` 程序也不知道我们想要保留哪一份修改,这时就需要我们手动修改产生冲突的文件...

2020-05-23 00:51:55

使用c++filt命令还原C++编译后的函数名

这个命令功能单一,但是非常强大,可以用来还原C++编译后的函数名,为什么C++的函数名需要单独的命令来还原,因为他们看起来都是这样 `_ZNK4Json5ValueixEPKc`、这样 `_Z41__static_initialization_and_destruction_0ii` 或者这样的 `_ZN6apsara5pangu15ScopedChunkInfoINS0_12RafChunkInfoEED1Ev`,仅通过这一串字母很难知道原函数的名字是什么,参数类型就更难分析了,实际上C++在编译函数时有

2020-05-17 01:02:23

汇编指令入门级整理

我们大都是被高级语言惯坏了的一代,源源不断的新特性正在逐步添加到各类高级语言之中,汇编作为最接近机器指令的低级语言,已经很少被直接拿来写程序了,不过我还真的遇到了一个,那是之前的一个同事,因为在写代码时遇到了成员函数权限及可见性的问题,导致他无法正确调用想执行的函数,结果他就开始在 `C++` 代码里嵌入汇编了,绕过了种种限制终于如愿以偿,但是读代码的我们傻眼了...

2020-05-10 20:49:34

C++11在左值引用的基础上增加右值引用

右值引用这个词是最开始是学习 `easylogging++` 这个日志开源项目的时候遇到的,当时遇到 `&&` 这样的写法先是一愣,还有这种写法?难道是引用的地址?结果查询资料才明白这叫做右值引用...

2020-05-05 23:21:48

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取