AlbertS Home of Technology

非传道授业仅为解惑也 [欢迎关注微信公众号:写代码的苏东坡]

排序算法系列之(四)——抓扑克牌风格的插入排序

前言 上次聊到了快速排序,我们说到快排这个名字是非常抽象的,究竟什么是快排,从名字上我们无从得知,或许叫二分排序都比快速排序要形象的多,可是这又和归并排序重复了,所以我们还是不要在意快排的名字了,接下来看一下今天的插入排序,这里指的是简单的插入排序。 插入排序相比于快速排序要形象很多,整个...

2018-12-08 16:52:55

阅读数:13

评论数:0

Mysql中使用select into语句给变量赋值没有匹配记录时的结果

前言 对select into语句感兴趣是因为看了项目中的一个存储过程引起的,在程序运行之前看了存储过程的逻辑,本以为没有数据时会报错,结果程序却正常运行,这说明我对select into语句理解的问题,同时也暴露了一个知识盲点,所以写了个小例子测试一下,并把测试的过程记录方便日后查找。 ...

2018-11-17 11:36:23

阅读数:174

评论数:0

VS2015调试dump文件时提示打不开KERNELBASE.dll

前言 之前的一篇文章"VS2015调试dump文件时提示未找到xxx.exe或xxx.dll"中,我简单的介绍了一下在调试dump文件是提示未找到exe或者dll的原因,那就是路径不正确或者版本不对应,最近在调试项目的时候发现了...

2018-10-27 19:17:15

阅读数:136

评论数:0

Lua中关于table对象引用传递的注意事项

内容导航前言代码测试总结测试源码 前言 最近写了挺长一段时间的Lua,发现Lua这个语言真的是很随意,产生这种感觉的根本原因应该是它把“函数” 作为了“第一类值”,也就是说函数也可以作为变量的“值”,这使得Lua可以随处定义函数,进而改变逻辑的走向,整个流程任你摆布。 虽说把一个函数来回...

2018-09-30 10:30:35

阅读数:105

评论数:0

智能指针(四):unique_ptr浅析

前言 unique_ptr这个指针是C++11标准时被引入标准库的,有一种说法称它是boost::scoped_ptr的一个分身,并且它在C++11的时候“转正”了,但是scoped_ptr还被留在boost库中,看来没有转正的机会了,不过unique_ptr与scoped_ptr确实很像,un...

2018-09-14 13:39:55

阅读数:115

评论数:0

智能指针(三):weak_ptr浅析

前言 weak_ptr这个指针天生一副“小弟”的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大shared_ptr天生有缺陷的问题,其实相比于上一代的智能指针auto_ptr来说,新进老大shared_ptr可以说近乎完美,但是通过引用计数实现的它,虽然解决了指针独占...

2018-09-01 14:36:26

阅读数:211

评论数:2

智能指针(二):shared_ptr浅析

前言 这个指针近乎完美,原来出现在boost库中,C++11时引入了标准库,解决了auto_ptr对内部对象独占的机制,转而采用引用计数的方式,每增加一次赋值,则引用计数加1,每析构一个智能指针对象,则引用计数减1,当引用计数为1时销毁智能指针对象的同时,也析构内部对象。这种采用引用计数方式避免...

2018-08-18 13:17:17

阅读数:66

评论数:0

智能指针(一):auto_ptr浅析

前言 之前简单的列举了一下各种智能指针的特点,其中提到了这个历经沧桑的指针,C++98中引入,C++11中弃用,C++17中被移除,弃用的原因主要是使用不当容易造成内存崩溃,不能够作为函数的返回值和函数的参数,也不能在容器中保存auto_ptr。其实说这个指针“不能够作为函数的返回值和函数的参数...

2018-08-10 13:34:18

阅读数:89

评论数:0

智能指针(零):分类及简单特性

前言 智能指针的种类繁多,我听说过的就有这些:auto_ptr、shared_ptr、weak_ptr、unique_ptr、scoped_ptr、scoped_array、shared_array、intrusive_ptr,这些智能指针看起来种类繁多,但实际上常用的就只有两三种,他们是sha...

2018-08-07 10:37:24

阅读数:66

评论数:0

简述TCP三次握手和四次挥手流程

# 前言 关于TCP的连接过程,很多从事程序开发的小伙伴应该都听过三次握手,可这三次握手的细节还是有很多人不太清楚的,特别是有些参数记不清楚,我也经常弄错,所以我根据自己的理解画了两张图,将TCP连接和断开的流程简单记录一下,以方便后续查找复习之用。 # 三次握手 ![run...

2018-07-14 15:30:32

阅读数:133

评论数:0

结构体sockaddr、sockaddr_in、sockaddr_in6之间的区别和联系

前言 最近在学习网络相关的知识,虽然之前代码写了不少,但是长时间不写难免会忘记,简单地复习了一下IO多路复用的方式,对比了解了一下epoll模式和select模式的异同,不过写代码的时候发现,这个socket连接中有几个结构还是挺让人头大的,用着用着突然就强转成其他的类型了,加上年前改了半天IP...

2018-07-10 20:35:27

阅读数:1511

评论数:0

VS2015调试dump文件时提示未找到xxx.exe或xxx.dll

# 前言 游戏开发的过程中,经常会出现客户端宕机的问题,这时候一个小小的dump文件可以记录当时的内存及堆栈情况,对于解决崩溃的问题有巨大的帮助,之前用VS2008的时候调试过dump文件,但是最近客户端升级为VS2015以后,调试dump文件时经常会出现未找到xxx.exe或xxx.dll的情...

2018-06-23 14:51:08

阅读数:609

评论数:0

操作指向类成员的指针需要了解的两个操作符->*和.*

前言 关于 ->* 这种写法在很早就在项目代码里见过了,并且还写过,不过当时并没有正确的理解这样写的含义,一直到最近发现这样写很奇怪,于是根据自己的理解,开始改代码,发现无论怎么改都无法通过编译,仔细搜索后才发现这是一种固定的写法,也就是说 -&am...

2018-05-12 14:55:44

阅读数:139

评论数:0

.bat批处理(六):替换字符串中匹配的子串

前言 关于字符串的操作通常是编程生涯中不可避免的,在各种竞赛中、工作中常常能使用到,许多语言中都有专门负责处理字符串的模块或者类,对于字符串的替换一般也有专门的函数,比如Lua中的string.gsub()、Python中的replece()等,那么批处理在进行字符串操作的时候,有没有好用的替换...

2018-04-12 20:20:56

阅读数:2008

评论数:0

排序算法系列之(三)——略显神秘的快速排序

前言 继续我的填坑旅程,上次说到《排序算法系列之(二)——冒泡排序名字最为形象的一个》2017-09-16 10:42:07,又过了半年多,终于再一次骨气勇气决定聊一聊快速排序的思路,不过与冒泡排序不同的是,这个快速排序的名字似乎和算法的思路没有什么关系,这个名字太抽象了,起这个名字可能当初仅仅...

2018-04-08 20:14:26

阅读数:153

评论数:0

神秘莫测的时间复杂度

前言 说到时间复杂度,作为程序员或多或少都会有所接触,特别是算法工程师肯定是天天和这个概念打交道,其实前几篇总结排序的文章我一直没有提时间复杂度,因为网上太多的文章讲这个概念了,所以我只总结了一下我对几种排序算法的理解,以及简单的实现代码,而当我今天准备总结一下快速排序的时候,我发现各个关于快速...

2018-03-31 12:31:58

阅读数:74

评论数:2

.bat批处理(五):遍历指定目录下资源文件并更新

前言 先来看这样一个需求,假设有A,B两个目录,其中A目录是资源目录,B目录是工作目录,其中资源目录不定期更新,资源文件都在A目录下,并且没有子目录层级关系,但是资源要被使用时需要更新到B工作目录,B目录根据工程需要建立了一个包含众多子目录的层级体系,这样当A目录中的一个资源文件更新后,需要手动...

2018-03-22 11:22:04

阅读数:1616

评论数:0

关于游戏中仓库类的设计

前言 这个游戏中的仓库类设计开始于春节前,和大家一样,我也是期盼着放假而无心工作,所以在放假前一天虽然蹦出了思维的火花,我却没有使用文字记录下来,但是大致的思路我已经记录到脑子中了,这一次的突然感悟,与上次突然明白什么是选择排序,什么是冒泡排序很类似,都是一瞬间突然明白,是一个从量变到质变的过程...

2018-03-08 19:42:15

阅读数:169

评论数:0

Vim、Xshell、远程终端莫名卡死的原因

前言 最近通过Xshell连接远程服务器,然后使用Vim修改文件时会莫名其妙的卡死,一开始我还没注意,因为近期的网络一直不太好,经常出现按下一个字母半天才反应过来的情况,所以我没有太在意,直接关闭终端重新打开就好。直到有一天我开着两个终端的时候,Vim又卡着不动了,而另一个终端还以流畅的处理我敲...

2018-02-03 11:51:52

阅读数:3134

评论数:3

Vim中简单格式化代码

前言 写这个总结的起因是我在把Windows上VS中的代码粘贴在Linux服务器的Vim中时,代码格式惨不忍睹,我就搞不明白为什么它每一行都要向后缩进,搞得我的代码最后像倒立的楼梯似的,就像这样: int main(int argc, char *argv[]) { int...

2018-02-02 18:16:42

阅读数:240

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭