2012年10月29日

VIM分屏指令

摘要: 命令模式下::new,新建文件并分屏, 快捷键,Ctrl+W,然后马上按n键:spilt 水平分屏,将当前屏分为两个,水平的。 Ctrl + w, s:vsplit 垂直分屏,将当前屏分为两个,垂直的。 Ctrl + w, v:only 取消分屏,取消当前的屏,当前屏指的是光标所在屏。关闭当前屏: Ctrl+w,c。如何切换焦点?Ctrl + w, w 后一个Ctrl + w, p 前一个Ctrl + w, h 四个方向Ctrl + w, iCtrl + w, kCtrl + w, l如何关闭其他窗口?Ctrl + w, o载入文件:vs 文件路径/文件名 在新的垂直分屏中打开文件:sv 文. 阅读全文

posted @ 2012-10-29 16:48 好坏 阅读(14345) 评论(0) 推荐(0) 编辑

2012年9月19日

排序算法总结

摘要: 1 冒泡排序 2 插入排序 3 简单选择排序 4 快速排序 5 堆排序 6 归并排序 阅读全文

posted @ 2012-09-19 22:12 好坏 阅读(539) 评论(2) 推荐(0) 编辑

2012年9月16日

C++模板的应用

摘要: 1、先看类模板的应用,直接上例子:#include <iostream>using namespace std;template <typename T>typename Compare{public: Compare(T a, T b) { this->x = a; this->y = b; } T max() { return x>y?x:y; } T min() { return x<y?x:y; } T sayHello(); //{ // cout<<... 阅读全文

posted @ 2012-09-16 22:05 好坏 阅读(253) 评论(0) 推荐(0) 编辑

2012年9月13日

Trie树|字典树的简介及实现

摘要: Trie树|字典树的简介及实现Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.其基本性质可以归纳为:1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。2. 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。3. 每个节点的所有子节点包含的字符都不相同。其基本操作有:查找 插入和删除,当然删除操作比 阅读全文

posted @ 2012-09-13 00:10 好坏 阅读(289) 评论(0) 推荐(0) 编辑

2012年9月7日

海量数据处理问题汇总及方法总结

摘要: 面试题中总是有好多海量数据的处理问题,在这里列出一些常见问题,便于以后查阅:类型1:hash映射+hash统计+堆排序1、 给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。 可以估计每个文件安的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。分而治之/hash映射:遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。遍历文件b,采取和a相同的方式将url分别存储到1000小文件中(记 阅读全文

posted @ 2012-09-07 22:05 好坏 阅读(4845) 评论(5) 推荐(2) 编辑

2012年9月3日

socket

摘要: 1 几个重要的结构 struct sockaddr { unsigned short sa_family; //地址类型,AF_XXX,TCPIP为AF_INET char sa_data[14]; //14字节的协议地址 };struct sockaddr_in{unsigned short sin_famlily;//地址类型unsigned short int sin_port;//端口号struct in_addr sin_addr; //IP地址unsigned sin_zero[8]; // 填充地址,一般赋值为0};struct in_addr;{ Unsigned long s 阅读全文

posted @ 2012-09-03 14:20 好坏 阅读(2054) 评论(0) 推荐(0) 编辑

进程间通信

摘要: 1 linux下进程间通信的几种主要方式: 管道、有名管道、信号量、消息队列、信号、共享内存、socket2 管道 #include <unistd.h> int pipe(int fd[2]); 管道只能半双工工作,一端写一端读,两端分别用fd[0]和fd[1]描述3 有名管道#include <sys/types.h>#include <sys/stat.h>Int mknod(const char*path, mode_t mod,dev_t dev);Int mkfifo(const char *path, mode_t mode);4 消息队列 核 阅读全文

posted @ 2012-09-03 14:19 好坏 阅读(426) 评论(0) 推荐(0) 编辑

2012年8月28日

信号处理

摘要: 1 linux系统中对信号的处理主要由signal和sigaction函数来完成 Signal函数用来设置进程在接收到信号时的动作 #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum,sighandler_t handler); signal会根据参数signum指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。如果参数handler不是函数指针,最必须是常数SIG_IGN(忽略该信号)或者SIG_DFL(对该信号 阅读全文

posted @ 2012-08-28 11:17 好坏 阅读(415) 评论(0) 推荐(0) 编辑

线程控制

摘要: 1线程的优点:统一进程下的线程共享同一进程空间,所以节约资源,主要包括以下三面:创建块、系统调度线程间切换快、通信快2 创建线程: #include <pthread.h> int pthread_create(pthread_t *thread, pthread_attr_t *attr, void* (*start_routine)(void *),void *arg); 参数说明: thread : 该参数是一个指针,当线程创建成功时,用来返回创建的线程ID attr:该参数用于指定线程的属性,NULL表示使用默认属性 start_routine:该参数为一个函数指针,指向线 阅读全文

posted @ 2012-08-28 11:16 好坏 阅读(773) 评论(0) 推荐(0) 编辑

进程控制

摘要: 1 程标识函数:定义在unistd.h中 pid(id) 获得进程ID pid_t getppid(id) 获得进程父进程的ID pid_t getuid() 获得进程的实际用户ID pid_t geteuid() 获得进程的有效用户ID pid_t getgid() 获得进程的实际组ID pid_t getegid(id) 获得进程的有效组ID进程控制1) fork: 用户创建一个新进程(创建一个新进程的唯一方法)#include <sys/types.h>#include <unist得到的 d.h>pid_t fork(void);注意:fork函数非常特殊,它有 阅读全文

posted @ 2012-08-28 11:15 好坏 阅读(264) 评论(0) 推荐(0) 编辑

导航