摘要: 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk 阅读全文
posted @ 2016-08-09 22:28 立超的专栏 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix 的grep家族包括grep、egrep和 阅读全文
posted @ 2016-08-09 21:45 立超的专栏 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 用过很多vim配置的版本,怎么说,想轻量级就不要胡加乱七八糟的功能;如果不在乎反应是不是快速,侧重功能是否强大,可以参考vim大神的配置策略(spf13-vim)https://github.com/spf13/spf13-vim 入手后,直接按照readme文件的说明安装即可,其实如果必备组件机子 阅读全文
posted @ 2016-08-09 21:14 立超的专栏 阅读(486) 评论(0) 推荐(0) 编辑
摘要: strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容 阅读全文
posted @ 2016-08-09 20:50 立超的专栏 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 32位机器上各种数据类型的长度如下:char:1(有符号无符号同) short:2(有符号无符号同) int:4(有符号无符号同) long:4(有符号无符号同) float:4 double:8 一、概念 对齐跟数 阅读全文
posted @ 2016-08-09 20:48 立超的专栏 阅读(691) 评论(0) 推荐(0) 编辑
摘要: char str[20]="0123456789"; int a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存 阅读全文
posted @ 2016-08-09 20:43 立超的专栏 阅读(7932) 评论(0) 推荐(1) 编辑
摘要: 所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞 (一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,而先后进入队列排队等候 执行。 并 阅读全文
posted @ 2016-08-09 19:02 立超的专栏 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。 操作系统所使用的缓冲区又被称为堆栈,在各个 阅读全文
posted @ 2016-08-09 18:57 立超的专栏 阅读(7498) 评论(0) 推荐(0) 编辑
摘要: 数据是分开的;同步简单; 共享复杂,需要用IPC 占用内存多,切换复杂; CPU利用率低 占用内存少,切换简单; CPU利用率高 适应与多核、多机分布; 如果一台机器不够,扩展到多台机器容易; 创建销毁复杂;切换复杂;速度慢 阅读全文
posted @ 2016-08-09 17:05 立超的专栏 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换,例如:不加:Circle A = Circle(1.23) 加上之后:只能写:Circle A(1.23) 发生隐式转换,除非有心利用,隐式转换常常带来程序逻辑的错误,而且这种错误一旦发生是很难察觉 阅读全文
posted @ 2016-08-09 17:03 立超的专栏 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 1)map:经过排序了的二元组的集合,map中的每个元素都是由两个值组成,其中的key(键值,一个map中的键值必须是唯一的) 是在排序或搜索时使用,它的值可以在容器中重新获取;而另一个值是该元素关联的数值。比如,除了可以ar[43] = "overripe"这样找到一个数据,map还可以通过ar[ 阅读全文
posted @ 2016-08-09 17:01 立超的专栏 阅读(7863) 评论(0) 推荐(0) 编辑
摘要: 1)全局静态变量:在静态存储区(bss段,数据段),在整个程序运行期间都存在,只对它所在的文件可见 2)局部静态变量:在静态存储区(bss段,数据段),当定义它的函数或者语句块结束的时候,作用域随之结束,但是(注:)当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放 阅读全文
posted @ 2016-08-09 16:38 立超的专栏 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1)union是几个不同类型的变量共占一段内存(相互覆盖);struct是把不同类型的数据组合成一个整体 2)对齐方式略有区别;union不需要+,只需要拿出对齐后的最长 structureunion Keyword struct defines a structure. Keyword union 阅读全文
posted @ 2016-08-09 16:27 立超的专栏 阅读(2393) 评论(0) 推荐(0) 编辑
摘要: vector的内存增长问题,其实无非是vector中size()和capacity()问题。vector的一个缺点就是它的内存分配是按照2的倍数分配内存的。当当前容量对插入元素不够时,分配一块新的内存,这块内存的容量是原vector容量 的2倍大小,然后复制旧内存,释放旧内存,可能多次涉及拷贝构造函 阅读全文
posted @ 2016-08-09 16:23 立超的专栏 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 变量可以分为全局变量、静态全局变量、局部变量和静态局部变量变量的声明有两种情况:1)一种是需要建立存储空间的(定义性声明)。例如int a 在生命的时候就已经建立了存储空间。2)另一种是不需要建立存储空间的(引用性声明)。例如extern int a 其中变量a是在别的文件中定义的。内存区域的划分: 阅读全文
posted @ 2016-08-09 16:06 立超的专栏 阅读(1251) 评论(0) 推荐(0) 编辑
摘要: 快速排序: 时间复杂度O(N*logN),最坏情况为O(N^2) 空间复杂度O(1) 但是堆栈深度一般情况为O(logN),最坏情况为O(N) 快速排序实现: partition划分算法: 然后,对整个数组进行递归排序: 算法导论中提到的快速排序的优化版本:就地重排 本文重点:三向切分 快速排序什么 阅读全文
posted @ 2016-08-09 15:52 立超的专栏 阅读(3873) 评论(1) 推荐(0) 编辑
摘要: 从C++角度上说,使用new分配堆空间可以调用类的构造函数,而malloc()函数仅仅是一个函数调用,它不会调用构造函数,它所接受的参数是一个unsigned long类型。同样,delete在释放堆空间之前会调用析构函数,而free函数则不会。 new/delete Allocate/releas 阅读全文
posted @ 2016-08-09 10:44 立超的专栏 阅读(275) 评论(0) 推荐(0) 编辑
摘要: C++程序内存布局: 代码区(code area) 程序内存空间 全局数据区(data area) 堆区(heap area) 栈区(stack area) 一个由C/C++编译的程序占用的内存分为以下几个部分, 1)全局区(静态区)(static)存放全局变量、静态数据,const常量。程序结束后 阅读全文
posted @ 2016-08-09 10:36 立超的专栏 阅读(2709) 评论(0) 推荐(1) 编辑
摘要: 代码区(code area) 程序内存空间 全局数据区(data area) 堆区(heap area) 栈区(stack area) 一个由C/C++编译的程序占用的内存分为以下几个部分, 1)全局区(静态区:BSS段,数据段)(static)存放全局变量、静态数据,const常量。程序结束后有系 阅读全文
posted @ 2016-08-09 10:34 立超的专栏 阅读(570) 评论(0) 推荐(0) 编辑
摘要: (1)指针是一个变量,只不过这个变量存储的是一个地址,这个地址指向内存的一个存储单元。引用跟原来的变量实质是一个东西,只不过是原变量的一个别名,不占用内存,只是在编译时,系统会临时分配一个类似与变量的东西存储,编译完也就释放了,具体咋折腾跟编译器有关系。(一般讨论的堆区和栈区...占用内存,都是指的 阅读全文
posted @ 2016-08-09 10:30 立超的专栏 阅读(177) 评论(0) 推荐(0) 编辑