摘要: 最近几个月,一直看开源软件的源代码,于是刚开始的时候就喜欢选择源代码行数少的,所以自己就写了一个统计c++开源软件的行数的shell程序,虽然很简单,但是感觉还是很实用。#!/bin/shfind . \( -name "*.cc" -o -name "*.h" \) -exec wc -l {} \; | sort -n | awk '{print $1}' > output.resultawk '{ sum = sum + $1} END {print "sum is " sum}' < 阅读全文
posted @ 2013-05-15 18:19 露天坝 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 最近又重新开始学c++了,才逐渐认识到c++的强大,原来自己一直都是一个小菜鸟。今天在学find这个泛型算法的时候,又遇到了一个有趣的问题,故写下来了。先贴上代码吧#include<iostream>#include<string>#include<list>#include<algorithm>#include<iterator>#include<string>using namespace std;template <typename InputItera, typename T >inline Input 阅读全文
posted @ 2013-05-15 18:07 露天坝 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 上个星期参加了腾讯的实习生面试,非常不幸的在第三面的时候被挂掉了。 今天在看源码的时候看见一个字符串比较的函数,类似于int strcmp(const char *s1,const char * s2),因为参见腾讯二面的时候写过这个函数,所以又仔细的想了一下,感觉这个代码的效率要高点,但自己写的时候也出现的了一些问题。先看有问题的代码:#include<stdio.h>#include<assert.h>int tcstricmp(const char *astr, const char *bstr, size_t n){ assert(astr && 阅读全文
posted @ 2013-05-05 21:05 露天坝 阅读(207) 评论(1) 推荐(1) 编辑
摘要: 由于要在看Kyoto Cabinet的源码,所以在自己的vim上安装了taglist这个插件。首先要下载taglist和ctags这2个包,安装ctags这个包,直接解压../configure && make && make install最后一步的时候需要root权限。解压出taglist这个包plugin/taglist.vim taglist这个插件doc/taglist.txt taglist的帮助文档把这俩个文件分别复制到$HOME/.vim/doc和$HOME/.vim/plugin下,然后在重启vim,运行:help taglist.txt,会显 阅读全文
posted @ 2013-05-05 20:24 露天坝 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 1.对齐的原因 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存放在偶地址开始的地方,那么一个读周期就可以读出,而如果存放在奇地址开始的地方,就可能会需要2个读周期,并对两次读出的结果的高低 字节进行拼凑才能得到该int数据。显然在读取效率上下降很多。这也是空间和时间的博弈。2.对齐的实现 编译器对数据存放做了对齐,平常我们在写程序的时候都 阅读全文
posted @ 2013-05-05 19:37 露天坝 阅读(136) 评论(0) 推荐(0) 编辑