2013年8月20日
摘要:
[awk] 1、调用方式awk [-F field-separator] 'commands' input-file(s)其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。 参考:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
阅读全文
posted @ 2013-08-20 11:24
Tekkaman
阅读(233)
推荐(0)
2013年8月19日
摘要:
[ArraySizeHelper解析] 以下代码用于获取一个数组的元素个数,例如 int table[100],以下宏返回100。template char (&ArraySizeHelper(const T (&array)[N]))[N]; #define arraysize(array) (sizeof(ArraySizeHelper(array)))[要点] 1、数组的引用 T (&)[N] (注意:有个括号)。比如: int a[5] = {0}; int (&ra)[5] = a; 这里ra就是一个对数组a的引用,其这个数组的大小也是5; 2、返回值
阅读全文
posted @ 2013-08-19 19:10
Tekkaman
阅读(2241)
推荐(4)
摘要:
[dup()&dup2()] 都是复制文件描述符指针。dup2可以指定复制到哪一个新索引。 参考:http://hi.baidu.com/flikecn/item/e82e14bef06e8a412aebe38a
阅读全文
posted @ 2013-08-19 14:21
Tekkaman
阅读(322)
推荐(0)
摘要:
[Source命令及脚本的执行方式] source filename 与 sh filename 及./filename执行脚本的区别在那里呢? 1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PA...
阅读全文
posted @ 2013-08-19 12:46
Tekkaman
阅读(1453)
推荐(0)
2013年8月15日
摘要:
[拷贝构造函数的调用时机] 1、对象以值传递的方式传入函数参数 2、对象以值传递的方式从函数返回 3、对象需要通过另外一个对象进行初始化 拷贝构造函数原型,假设类名为Foo,则copy constructor为: Foo( const Foo &obj); 限定符必须是const,且必须是引用。
阅读全文
posted @ 2013-08-15 16:58
Tekkaman
阅读(777)
推荐(0)
摘要:
[jsoncpp使用] 参考:http://blog.csdn.net/hzyong_c/article/details/7163589
阅读全文
posted @ 2013-08-15 15:08
Tekkaman
阅读(304)
推荐(0)
2013年8月13日
摘要:
[Header File Dependencies] 什么时候可以用前置声明替代include? 1、当 declare/define pointer&reference 时。 2、当 declare static data member 时。 3、当 declare function 时。 So,下面这段代码会被正常编译通过:#include class Point;struct Square{ Point *pt; Point &ref; static Point point;};void xshow(Point p); void show(){ pri...
阅读全文
posted @ 2013-08-13 16:11
Tekkaman
阅读(321)
推荐(0)
摘要:
[An Insight to References in C++] 引用的本质是常指针。占用的内存和指针一样。 参考:http://www.codeproject.com/Articles/13363/An-Insight-to-References-in-C
阅读全文
posted @ 2013-08-13 15:44
Tekkaman
阅读(211)
推荐(0)
2013年8月12日
摘要:
[让vim查找字符忽略大小写] 1、配置文件set ignorecase smartcase。 2、/c、/C。 参考:http://www.360doc.com/content/13/0116/14/8547696_260509353.shtml [复制粘贴]yy复制游标所在行整行。或大写一个Y。...
阅读全文
posted @ 2013-08-12 12:23
Tekkaman
阅读(460)
推荐(0)
2013年8月6日
摘要:
【为什么书呆子不受欢迎】 1、“书呆子”与“高智商”有着强烈的正相关关系,与“受欢迎”有一种更强烈的负相关关系。 2、书呆子不受欢迎是因为他们不愿意花大量的时间用于包装自己、学习社交技能以让自己受欢迎,他们宁愿把时间花费在自己感兴趣的东西上:绘画、创作、Coding、Math……。也有因为自卑而完全
阅读全文
posted @ 2013-08-06 13:20
Tekkaman
阅读(522)
推荐(0)
摘要:
【du熊的机器人】Description du熊正在玩一个别人刚送给它的机器人。这个机器人只能在一个棋盘中行走,棋盘的左上角格子为(0, 0),右下角格子为(X, Y)。 du熊控制这个机器人从棋盘的左上角,走到右下角,再从右下角回到左上角。当机器人从左上角走到右下角的过程中,如果它当前所在格子为(x, y),则它只能走到(x+1, y)或(x, y+1)的格子;当机器人从右下角走回左上角的过程中,如果它当前所在的格子为(x, y),则它只能走到(x-1, y)或(x, y-1)的格子。并且du熊要求机器人从左上角走到右下角再走回左上角的整个过程中,最多经过同一个格子一次。 请你帮du熊...
阅读全文
posted @ 2013-08-06 10:53
Tekkaman
阅读(798)
推荐(0)
2013年8月5日
摘要:
【点集最大共线问题】 问题:2D空间里有N个点,设计一个算法,求出此空间内最多有多少个点共线。 解法一:依次取2个点,确定一条直线,然后依次检测剩下的点是否在当前线段(叉积为零则在一直线上)。O(n^3)。 解法二:依次取1个点,统计出此点所有直线的等值斜率的个数。如果用Hash统计,则花费O(n^...
阅读全文
posted @ 2013-08-05 14:58
Tekkaman
阅读(557)
推荐(0)
2013年7月17日
摘要:
【孩子的岁数】问题: 一普查员问一女人,“你有多少个孩子,他们多少岁?”女人回答:“我有三个孩子,他们的岁数相乘是36,岁数相加就等于旁边屋的门牌号码。“普查员立刻走到旁边屋,看了一看,回来说:“我还需要多少资料。”女人回答:“我现在很忙,我最大的孩子正在楼上睡觉。”普查员说:”谢谢,我己知道了。” 问题:那三个孩子的岁数是多少。解答: 36 = 1 × 2 × 2 × 3 × 3,所以所有的可能为 1,1,36;sum = 38 1,2,18;sum = 21 1,3,12;sum = 16 1,4,9;sum = 14 1,6,6;sum = 13
阅读全文
posted @ 2013-07-17 12:29
Tekkaman
阅读(318)
推荐(0)
摘要:
【数组中是否有两个数的和为10】 先排序,花费O(N*logN) 再设置2个指针,一个放在Head,一个放在Tail。如果Element[Head] + Element[Tail] 10,则Tail--,如果==10,则找到了。此步花费O(N)。 所以总共花费O(N*logN + N) = O(N*logN)
阅读全文
posted @ 2013-07-17 11:21
Tekkaman
阅读(324)
推荐(0)
2013年7月16日
摘要:
【1024!末尾有多少个零】 参考:http://blog.csdn.net/cywosp/article/details/6729715
阅读全文
posted @ 2013-07-16 17:41
Tekkaman
阅读(318)
推荐(0)
摘要:
【最小公倍数求法的证明】 假设A、B的最大公约数为X,则A=a1*X, B=b1*X;因为X为最大公约数,所以a1、b1互质。 A、B的最小公倍数实际上为a1*X*b1。由于A*B=a1*x*b1*x,所以[A,B] = A*B/(A,B)。 即,A、B的最小公倍数*最大公约数=A*B。
阅读全文
posted @ 2013-07-16 16:37
Tekkaman
阅读(784)
推荐(0)
摘要:
【欧几里德法求最大公约数】 欧几里德法也叫辗转相除法。 1、实现int max_gcd(int a, int b){ return b==0 ? a : max_gcd(b, a%b); } 2、假设 a = qb + c,为什么 a&b的公约数会等于 b&c的公约数? 3、为什么...
阅读全文
posted @ 2013-07-16 15:27
Tekkaman
阅读(429)
推荐(0)
摘要:
【设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数】 设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数。并估算时间复杂度。解法: 使用大根堆和小根堆存储。 使用大根堆存储较小的一半数字,使用小根堆存储较大的一半数字。 插入数字时,在O(logn)时间内将该数字插入到对应的堆当中。当两边个数差大于1时,从多的一边取头上的数加入另一边,以维持平衡。 获取中数时,在O(1)时间内找到中数。
阅读全文
posted @ 2013-07-16 12:51
Tekkaman
阅读(344)
推荐(0)
摘要:
【数状数组】 参考:http://www.cppblog.com/Ylemzy/articles/98322.html
阅读全文
posted @ 2013-07-16 11:40
Tekkaman
阅读(231)
推荐(0)
2013年7月15日
摘要:
【25匹马,每次能5匹一起跑,选出最快的3匹】 有25匹马,每次能5匹一起跑,选出最快的3匹最少需要几次? 我能想到的方法是7次,先分5组比,用去5次,然后每组头名比,用去1次。然后最快组的2号、3号和第二快组的1号、2号,以及第三快组的1号5匹买比赛,选出前2名即可,此处用去1计。所以加起来共计7次。 此法的优化方法才在于最后一次的比较。实际上是一次剪枝,把不可能合格的马提前去除。
阅读全文
posted @ 2013-07-15 21:14
Tekkaman
阅读(1760)
推荐(0)
2013年7月13日
摘要:
【禁止ImageCapture自动启动】 打开ImageCapture,点开左下角菜单,把Connecting this iPhone opens:的内容改为以下选项即可。
阅读全文
posted @ 2013-07-13 08:24
Tekkaman
阅读(571)
推荐(0)
2013年7月11日
摘要:
【SublimeText Videos Notes】Getting Started 1、Hello:https://tutsplus.com/course/improve-workflow-in-sublime-text-2/ 为什么什么要使用Sublime Text: 1)多光标特性。 2)Vintage Mode。(vim模式) 3)fastest。(没有更快的了) 4)coolest。(更有更酷的了) 5)command pallete。(让你更少的使用键盘) 6)plugin。(丰富的插件以及便捷的安装) 2、Installation & Base Setting:htt...
阅读全文
posted @ 2013-07-11 18:18
Tekkaman
阅读(413)
推荐(0)
2013年7月3日
摘要:
【10G个64bit整数,找出中位数】 题目:在一个文件中有10G个64bit整数,乱序排列,要求找出中位数。内存限制为2G。 解法:内存限制为2G表面上是限制,实际上是一种提示,在提示我们如何利用2G内存来解决这道题。 2G内存可以存放256M个64bit整数。我们可以将64bit的整数空间(2^64)平均分成256M(2^28)个取值范围,每个范围为(2^(64-28)),用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一遍10G整数后,我们再从头把2G中的数字统计一遍,便知道中数在那个区间内出现,以及这个范围内总共出现了多少个整数,第一轮中,这个区间为2^(64-28...
阅读全文
posted @ 2013-07-03 23:10
Tekkaman
阅读(439)
推荐(0)
2013年7月1日
摘要:
【python初步要点II】 1、is & is not 操作符用于测试2个对象是否指向同一个对象,即 id(a) == id(b)。 2、整形和字符串对象是不可变对象,python会高效地缓存它们。所以a=1,b=1后,id(a)会等于id(b) 3、被缓存的字符串不会永生不灭。 4、cmp(objc1, objc2)函数用于比较2个对象。 5、type用于返回对象类型,对于实例,返回的是instance。 6、对象的类型是instance 7、python中所有整数都是长整型,所有小数都是双精度。【python初步要点之数字】 1、试图使用一个已被删除的对象引用,,会引发NameE
阅读全文
posted @ 2013-07-01 19:55
Tekkaman
阅读(520)
推荐(0)
摘要:
【python初步要点】 #! 用于告诉操作系统去哪里找Python解释器为运行您的程序。 1、print 的输出有以下2种形式,""%()的形式类似于C的printf。 要注意逗号“,”在输出的时候意味着是一个空格。 python3后,print关键字变成了print()函数。 2、ra...
阅读全文
posted @ 2013-07-01 17:03
Tekkaman
阅读(443)
推荐(0)
2013年6月30日
摘要:
【找出丢失的数字】 有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里。请找出丢失的数字。 解法:快速排序改造。 时间复杂度:O(N)。 具体解释: 1)题目特点数字为1-N,所以在排序过程中,每次中位数取当前范围的n/2,则必然可以将数组拆分成等长的2份。 2)当一次中位
阅读全文
posted @ 2013-06-30 09:53
Tekkaman
阅读(515)
推荐(0)
2013年6月25日
摘要:
【nice & renice & getpriority & setpriority】 1、nice & renice 参考:http://man.ddvip.com/linux/Mandrakelinuxref/process-priority.html 注意:-n increment 表示增量,即在进程原有优先级上加上一个增量。 2、getpriority & setpriority 注意:maybe nice & renice 内部使用的就是 getpriority & setpriority API.
阅读全文
posted @ 2013-06-25 15:28
Tekkaman
阅读(311)
推荐(0)
2013年6月22日
摘要:
【Multithread之为什么spinlock必须是volatile?】 1、编译器的优化 在本次线程内,当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后再取变量值时,就直接从寄存器中取值; 当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致 当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致 当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致 2、如果spinlock为非volatile,那么当一个线程释放spinlo...
阅读全文
posted @ 2013-06-22 15:45
Tekkaman
阅读(362)
推荐(1)
2013年6月17日
摘要:
【shell编程变量赋值】 1、等号两边均不能有空格存在。例, a="hello world" 2、变量和其它文字以{}或空格格开,否则会混淆。例, 有时候变量名可能会和其它文字混淆,比如: num=2 echo "this is the $numnd" 可以使用{}或空格破除混淆 ${num}nd或 $num nd 3、想要计算某个值,请使用expr或$[]或$(()) var=`expr $var +1`#注意加号两边的空格 var=$[$var+1] var=$(($var+1))
阅读全文
posted @ 2013-06-17 16:56
Tekkaman
阅读(371)
推荐(0)
2013年6月15日
摘要:
【md文件格式】 md为MarkDown的缩写。 1、*Text*、_Text_ 均为斜体。类似HTML<em> 2、**Text**、__Text__均为加粗。类似HTML<strong> 3、要建立一个行内式的链接,只要在方块括号后面紧接着圆括号并插入网址链接即可,如果你还想要加上链接的 tit
阅读全文
posted @ 2013-06-15 18:49
Tekkaman
阅读(13926)
推荐(0)
2013年6月6日
摘要:
【shell变量类型】 1、用户变量。 env可以显示。 2、shell变量。set可以显示,set命令包含用户变量的显示。 3、export,临时添加本shell内部变量到env。【env vs. set】 Linux系统里的env命令[1]可以显示当前用户的环境变量,还可以用来在指定环境变量下...
阅读全文
posted @ 2013-06-06 23:15
Tekkaman
阅读(476)
推荐(0)
2013年5月31日
摘要:
【C++ typeid】 RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提
阅读全文
posted @ 2013-05-31 17:40
Tekkaman
阅读(438)
推荐(0)
2013年5月30日
摘要:
【何时必须使用member initialization list?】 1、初始化一个reference member时。 reference member必须在 initialization list中初始化。 2、初始化一个const member时。 const member必须在 initialization list中初始化。 3、当调用一个base class的constructor,而它拥有一组参数时。 必须在initialization list中调用父类的多参构造函数。 4、当调用一个member class的consturctor,而它拥有一组参数时。 必须在ini...
阅读全文
posted @ 2013-05-30 13:02
Tekkaman
阅读(450)
推荐(0)
2013年5月29日
摘要:
【什么时候会生成Copy Constructor?】 当无法应用 bitwise copy semantics时,就会生成copy constructor。以下4种情形,会生成copy constructor: 1、内含“带 copy constructor"的成员对象时。此时要在copy constructor中插入调用成员对象copy constructor的代码。 2、继承“带 copy constructor”的类时。此时要在copy constructor中插入调用成员对象copy constructor的代码。 3、声明了 virtual 函数时。此时要在copy con
阅读全文
posted @ 2013-05-29 23:46
Tekkaman
阅读(272)
推荐(0)
摘要:
【何时会生成default constructor?】 1、带有"Default Constructor"的Member Class Object。 对于Class Object成员,编译器默认会调用此成员的默认构造函数。那么在哪调呢?答案是本对象的默认构造函数。所以编译器会生成Default Constructor。 2、带有"Default Constructor"的Base Class。 对于继承的情况,编译器默认会调用此类父类的默认构造函数。同上,在本对象的默认构造函数里调,所以需要生成Default Constructor。 3、带有"
阅读全文
posted @ 2013-05-29 21:18
Tekkaman
阅读(311)
推荐(0)
2013年5月23日
摘要:
【详解objc_msgSend】 1、为了性能,objc_msgSend用汇编写成。存在于objc-msg-x86_64.s中。 2、在上图代码中可以看到,objc_msgSend被分为2个过程:1)在cache中寻找SEL。2)在MethodTable寻找SEL。 3、CacheLookup中,不断地拿SEL与cache中的缓存比较,比较失败,则跳转到LCacheMiss标签继续在MethodTable中搜索。 如果想手动查找cache,则需要调用_cache_getimp函数(汇编实现),此函数是个对外接口层,用于保存与准备环境。 _cache_getImp在头文件中obj...
阅读全文
posted @ 2013-05-23 11:34
Tekkaman
阅读(5632)
推荐(2)
摘要:
【iOS inter-process communication】 1、剪贴板。 2、URL Scheme。 参考:x-callback-url
阅读全文
posted @ 2013-05-23 09:20
Tekkaman
阅读(305)
推荐(0)
2013年5月22日
摘要:
【Mach-O Objc信息导出】1、__DATA,__objc_selrefs 类型:SEL,指向 __TEXT,__objc_methname 中的数据长度:len(section)/len(SEL)注意:对于一个包含objc类信息的bundle,在bundle加载时,objc-runtime会把此bundle中的selrefs改写为指向__TEXT,__objc_methname中的数据。若该seg中数据不存在,存在在堆中新建一个字符串。简而言就是bundle中的selrefs不能指向自己的__TEXT seg。节省内存。2、__DATA,__objc_classlist &&a
阅读全文
posted @ 2013-05-22 18:54
Tekkaman
阅读(888)
推荐(0)
2013年5月18日
摘要:
【what is stubs?】 A stub is a small program routine that substitutes for a longer program, possibly to be loaded later or that is located remotely. For example, a program that uses Remote Procedure Calls (RPC) is compiled with stubs that substitute for the program that provides a requested procedure.
阅读全文
posted @ 2013-05-18 23:09
Tekkaman
阅读(279)
推荐(0)
摘要:
【x86 enter&leave 指令】 1、Enter的作用相当==push ebp和mov ebp,esp 2、Leave的作用相当==mov esp,ebp和pop ebp 参考:http://blog.csdn.net/zhangxinrun/article/details/5888425
阅读全文
posted @ 2013-05-18 22:52
Tekkaman
阅读(2680)
推荐(0)