- 博客(26)
- 收藏
- 关注
原创 如何写简单的makefile
作为一个服务端的程序员,在linux下不会写makefile那就就不能算服务端程序了。最近在重新学C/C++,写了一个简单的双向链表,到写makefile的时候卡住了,太久没写,都忘记了,赶紧上网查了点资料,了解简单写法,特别在这里记录一下。 先介绍下文件结构,当前目录下有个main.cpp,有两个目录,include和src,include下有一个文件叫linked_list.h,sr
2016-03-19 22:43:54 437
原创 C++成员变量的初始化顺序
知识点:在C++中,成员变量的初始化顺序只与它们在类中声明的顺序有关,而与初始化列表中的顺序无关。 不知道大家知不知道这个,反正我是不知道(或者忘了),我是在《剑指offer》上看到的,后来在《Effective C++》中条款4中再次看到,特地在这记录一下,防止忘记。 下面举个具体的例子,摘自《剑指offer》:class A{private: i
2016-03-15 21:15:29 462
原创 C++访问限定符
参考文章: http://bbs.csdn.net/topics/390469501(3楼) C++访问限定符(public,protect,private)大家都知道吧,这里有个比较特殊的知识点:这些限定符是限定类的,不是限定对象的,只要类型相同就相互访问。 昨天我在笔试的时候,写到String类的赋值函数时,突然卡住了,我要如何取出String里面的data,它是p
2016-03-15 20:44:51 3004
原创 String 构造函数,析构函数,拷贝构造函数和赋值函数
今天我笔试的时候遇到这道题,当时是写出来了,但是回到家查了一下答案后,发现基本是写对了,但是有些细节写的有点问题,特地在这里记录下,以提醒自己,大家也自己注意下。String类结构class String{public: String(const char *str = NULL); // 普通构造函数 String
2016-03-15 01:06:10 627
原创 TCP四次握手(关闭连接)
参考地址:http://www.2cto.com/net/201208/149565.html客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据
2016-03-14 01:06:40 843
原创 TCP三次握手(建立连接)
参考地址:http://www.2cto.com/net/201208/149565.html客户端和服务器要建立一个TCP连接,总共要发送3个包。目的:连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。在socket编程中,客户端执行connect()时,将触发三次握手。第一次握手:客户端发送一个请求包
2016-03-14 01:05:11 485
原创 同步IO和异步IO
参考文章:http://blog.chinaunix.net/uid-28458801-id-4464639.html 今天面试被问到这个问题,之前看书有看到,但是书上讲的不够清楚,也没记住,所以这次认真查了资料,在这做记录,好好记住它。 首先,我们要知道一个事情,在执行read操作时,会经历2个阶段: 1.等待数据准备 2.将数据从内核拷贝到进程中
2016-03-14 01:03:48 324
原创 搭建linux服务器之Vim配置
Vim也装完了,现在该配置Vim了,vim的插件很多,我这里只写出我自己用的,其他的大家可以自行搜索。一、配置文件 vim有很多配置文件,有不同的优先级,我用的是账户目录下的.vimrc,下面是我的配置文件:"语法高亮syntax on"括号匹配set showmatch"显示行号set nu"设置Tab长度为4格set tabstop=4"不要用空
2016-03-11 01:40:37 1891
原创 搭建linux服务器之Debian源相关
Linux的好处就是安装软件直接命令安装,比如Debian直接apt-get(我更习惯用aptitude),它会直接在源里面查找安装,很方便。这里主要记录源的一些事情: 首先,源列表在/etc/apt/sources.list文件里面,打开后,如下所示: 这是我刚装的debian8.3里的内容,默认已经把163的源加进来了,当初我第一次装debian的时候,忘了是什么版
2016-03-11 00:59:33 474
原创 搭建linux服务器之Debian安装Vim7.4
参考文章:http://www.cnblogs.com/zhongcq/p/3615980.html一、缘由 安装默认的vim可以直接用apt-get,但是只能安装到vim7.3,有些情况下是需要自己重新编译安装的,比如如果你要装插件YouCompleteMe。正好我想学习下如何手动安装vim,便有了这篇文章。二、安装准备工作 首先,我们要先下载最新
2016-03-10 22:01:48 2359
原创 搭建linux服务器之SecureCRT乱码
我想这个问题应该很多人遇到过,经常不知道如何解决,下面我说说解决方法。 首先用SecureCRT连接上Debian,然后查看下当前环境,输入:env,这时候就会列出当前环境,如下图: 找出TERM这个变量,我这里是xterm,这时候在SecureCRT菜单栏上,选择选项->会话选项->仿真,在终端那里选择Xterm,后面2个选项勾上,然后选择外观,字符编码选择对应的
2016-03-10 21:22:13 401
原创 搭建linux服务器之Debian设置静态IP
作为服务器开发的人,基本上都是用SecureCRT(或类似产品)远程连接到服务器进行开发的。但是一台新装的Debian,比如前面文章说的,刚在虚拟机上装了Debian,默认都是用DHCP直接获取动态IP的,导致每次用SecureCRT连接都要先看下IP才行,所以要先设置成静态IP。下面说下我设置的过程。 首先我们要先打开/etc/network/interfaces这个文件,用gedit
2016-03-10 01:08:57 1593
原创 搭建linux服务器之Debian安装
一、选择Debian的缘由 大家都知道linux的发行版本很多,有centos啊,debian啊,ubuntu等,因为我是服务器开发出身的,所以打算自己利用业余时间折腾下linux,提高提高自己的技术。当时我在VMware里面装了ubuntu,然后装起装八的各个东西搞好,但是因为一些原因又搁置了,最近有想拿出来玩玩,但是突然很好奇各个linux版本有啥区别,就搜索了一下,结果发现装ubu
2016-03-09 22:40:59 4997
原创 生日悖论
题目: 生日悖论问的是,当一个房间里有多少人时,其中两个人生日(月和日)相同的概率大于1/2?这个问题的答案十分出人意料,请试着求解。对于散列来说,这个结论意味着什么?分析: 这道题其实很有意思,一开始我想到的是抽屉原则,那应该是大于365(假设一年365天)就会大于1/2,但是看了答案后,才知道结果不是如此,下面是真正的答案分析。
2015-12-17 13:05:27 1013
原创 4人过桥
题目: 有4个人打算过桥,他们都在桥的某一端。我们有17分钟让他们全部到达大桥的另一头。时间是晚上,他们只有一只手电筒,一次最多只能有两个人同时过桥,而且必须携带手电筒。必须步行将手电筒带来带去,即扔来扔去是不行的。每个人走路速度不同:甲过桥要用1分钟,乙要用2分钟,丙要用5分钟,丁要用10分钟。两个人一起走的速度等于其中走得慢的那个人的速度。请问要如何过桥才能在规定时间内完成。
2015-11-30 12:01:18 2533
原创 农夫过河
题目: 一个农夫带了一只狼,一只羊和一棵白菜来到河边。他需要用船把它们带到河对岸。然而,这艘船只能容下农夫本人和另外一样东西(要么是狼,要么是羊,要么是白菜)。如果农夫不在场的话,狼就会吃掉羊,羊也会吃掉白菜。请为农夫解决这个问题,或者证明它无解(为了有助于解决这个问题,我们假设农夫是一位不爱吃白菜的素食主义者,所以他既不吃羊,也不吃白菜。而且我们也不假设这只狼是一种受保护的动物
2015-11-30 11:35:13 1687
原创 欧几里得游戏
题目: 一开始,板上写有两个不相等的正整数,两个玩家交替写数字,每一次,当前玩家都必须在板上写出任意两个板上数字的差,而且这两个数字必须是新的,也就是说,不能与板上任何一个已有的数字相同。当玩家再也写不出新数字时,他就输了。请问,你是选择先行动还是后行动呢?分析: 其实这道题和欧几里得算法的减法版本有点像,只是有点拓展,无论他们怎么相减,最后肯定会得
2015-11-26 11:42:11 3588
原创 欧几里得算法的另类想法
欧几里得算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。 其计算原理依赖于下面的定理:定理: 两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数。最大公约数(greatest common divisor)缩写为gcd。 gcd(a,b) = gcd(b,a mod b) (不妨设a>b 且r=a mod b ,
2015-11-26 11:40:02 422
原创 在UI中动态实例化对象设置位置无效的问题
今天在搞东西的时候发现一个问题,我动态实例化预制的东西无法改变位置,之前是可以的,这次只是移到UI上面而已,就失效了。查了很久,没找到原因,后来有人说用NGUITOOLS.AddChild就行了,试了下,发现确实可以了,但是想不明白什么原因,就看了下这个函数的实现,如下:static public GameObject AddChild (GameObject parent, GameObje
2015-11-26 01:25:07 1661
原创 带锁的门
题目: 在走廊上有n个带锁的门,从1到n依次编号。最初所有的门都是关着的。我们从门前经过n次,每一次都是从1号门开始。在第i次经过时(i = 1, 2, ..., n)我们改变i的整数倍号锁的状态:如果门是关的,就打开它;如果门是开的,就关上它。在最后依次经过后,哪些门是打开的,那些门是关上的?有多少打开的门?分析: 一开始门都是锁着的,所以一个门只
2015-11-25 14:59:57 1401
原创 git和svn开发流程
这里主要记录的是我自己用git作为本地版本库,远程为svn库,平时开发的流程,希望对大家有帮助。 为什么用git呢?最主要的就是git切分支很方便,这对开发有很大帮助。相信大家用svn经常遇到这样的问题吧,在开发一个功能或者修复一个bug,结果却接到一个紧急问题需要解决,但是这时候代码还没开发完,甚至程序都启动不起来,这时候就真的是两难境地。用git就没这个问题,直接切到主分支,或者另开一个
2015-02-07 17:43:52 441
原创 Debian7.7安装vim7.4遇到依赖问题解决办法
Debian用apt-get安装的vim版本是7.2,如果想要YouCompleteMe的话那就只能自己编译安装了,目前最新的vim是7.4,怎么安装网上有很多文章,本以为照做就行了,但是却在安装依赖库的时候出问题了,找了好久都没找到解决办法,下面是我自己误打误撞解决的,希望对大家有帮助。这是安装vim的参考文章:http://www.cnblogs.com/zhongcq/p/3615980.h
2015-02-07 16:10:19 847
原创 开篇
本来很早就想搞个博客来记录自己的工作点滴,老是因为各种原因而推迟,好了,废话不多说,现在开通了,我会认真维护自己博客的,如果博客中有什么错误的地方,欢迎指正。
2014-12-07 16:27:05 273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人