自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 11月1日

9月10月,还以为秋招没能拿到offer,结果10月尾陆续送上offer。。。虽然大公司的面试都gg了,但其实感觉是自己没准备好吧,回去好好传授下师弟们面经。。今晚睡不着,打机看视频到现在还很精神,偶尔这样一下也挺high的,就是舍友说梦话吓人。。话说得去实习,不太想去,大四还是好好玩。。。不过如果觉得了offer了就是去实习。。。哎一切安好吧~

2016-11-01 03:49:42 297

原创 9月

恍恍惚惚已经快10月了,忙着找工作而导致生活好颓废的样子- -调整一下,多去运动多学习,希望37能通过,京东和迅雷的面试也顺顺利利把~~

2016-09-23 15:28:57 380

原创 基于社交网络的用户与基于物品的协同过滤推荐算法-java

package WjPack;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.HashMap;publi

2016-08-03 16:25:27 5587 15

原创 7月

写完libevent的分析,马上就要秋招了啊,赶紧各种补姿势,加油~

2016-07-21 16:56:43 289

原创 [libevent]epoll_add()

static intepoll_add(void *arg, struct event *ev){ struct epollop *epollop = arg; struct epoll_event epev = {0, {0}}; struct evepoll *evep; int fd, op, events; if (ev->ev_events & EV_SIGNAL)//信

2016-07-21 16:48:46 451

原创 [libevent]epoll_dispatch()

static intepoll_dispatch(struct event_base *base, void *arg, struct timeval *tv){ struct epollop *epollop = arg; struct epoll_event *events = epollop->events; struct evepoll *evep; int i, res, t

2016-07-21 16:37:26 465

原创 [libevent]evsignal_process()

voidevsignal_process(struct event_base *base){ struct evsignal_info *sig = &base->sig; struct event *ev, *next_ev; sig_atomic_t ncalls; int i; base->sig.evsignal_caught = 0; for (i = 1; i <

2016-07-21 16:27:09 315

原创 [libevent]evsignal_handler()

static voidevsignal_handler(int sig){ int save_errno = errno; if (evsignal_base == NULL) { event_warn( "%s: received signal %d, but have no base configured", __func__, sig); return; }

2016-07-21 16:23:20 324

原创 [libevent]_evsignal_restore_handler()

int_evsignal_restore_handler(struct event_base *base, int evsignal){ int ret = 0; struct evsignal_info *sig = &base->sig;#ifdef HAVE_SIGACTION struct sigaction *sh;#else ev_sighandler_t *sh;#

2016-07-21 16:20:44 275

原创 [libevent]_evsignal_set_handler()

int_evsignal_set_handler(struct event_base *base, int evsignal, void (*handler)(int)){#ifdef HAVE_SIGACTION struct sigaction sa;#else ev_sighandler_t sh;#endif struct evsignal_info *si

2016-07-21 16:19:03 370

原创 [libevent]evsignal_add()

intevsignal_add(struct event *ev){ int evsignal; struct event_base *base = ev->ev_base; struct evsignal_info *sig = &ev->ev_base->sig; if (ev->ev_events & (EV_READ|EV_WRITE)) event_errx(1, "%

2016-07-21 16:16:06 816

原创 [libevent]evsignal_init()

intevsignal_init(struct event_base *base){ int i; /* * Our signal handler is going to write to one end of the socket * pair to wake up our event loop. The event loop then scans for * sign

2016-07-21 16:11:03 798

原创 [libevent]event_process_active()

static voidevent_process_active(struct event_base *base){ struct event *ev; struct event_list *activeq = NULL; int i; short ncalls; for (i = 0; i nactivequeues; ++i) {//获得就绪链表中有就绪事件并且高优先级的表头

2016-07-21 16:02:33 1082

原创 [libevent]timeout_process()

voidtimeout_process(struct event_base *base){ struct timeval now; struct event *ev; if (min_heap_empty(&base->timeheap)) return; gettime(base, &now); while ((ev = min_heap_top(&base->timeh

2016-07-21 15:58:49 481

原创 [libevent]gettime()

static intgettime(struct event_base *base, struct timeval *tp){ if (base->tv_cache.tv_sec) {//如果有时间缓存则将缓存赋值给tp *tp = base->tv_cache; return (0); }#if defined(HAVE_CLOCK_GETTIME) && defined(C

2016-07-21 15:56:33 693

原创 [libevent]timeout_next()

static inttimeout_next(struct event_base *base, struct timeval **tv_p){ struct timeval now; struct event *ev; struct timeval *tv = *tv_p; if ((ev = min_heap_top(&base->timeheap)) == NULL) {//如果

2016-07-21 15:54:40 500

原创 [libevent]event_base_loop()

intevent_base_loop(struct event_base *base, int flags){ const struct eventop *evsel = base->evsel;//选择了epoll机制(如果之前选择了epoll) void *evbase = base->evbase;//epoll.c的epollop对象 struct timeval tv; st

2016-07-21 15:29:49 2249

原创 [libevent]event_add()

intevent_add(struct event *ev, const struct timeval *tv){ struct event_base *base = ev->ev_base;//与event关联的event_base const struct eventop *evsel = base->evsel;//其实就是epoll机制(若之前选择了epoll) void *ev

2016-07-21 15:10:52 714

原创 [libevent]event_set()

voidevent_set(struct event *ev, int fd, short events, void (*callback)(int, short, void *), void *arg){ /* Take the current base - caller needs to set the real base later */ ev->ev_base = curre

2016-07-21 14:57:12 807

原创 [libevent]event_base_new()

struct event_base *event_base_new(void){ int i; struct event_base *base; //相当于一个reactor,声明后分配空间 if ((base = calloc(1, sizeof(struct event_base))) == NULL) event_err(1, "%s: calloc", __func__);

2016-07-21 14:50:33 4432

原创 [libevent]事件流程大览

我 们可以从sample的文件夹里面找到以下文件代码:int called = 0;static voidsignal_cb(int fd, short event, void *arg){ struct event *signal = arg; printf("%s: got signal %d\n", __func__, EVENT_SIGNAL(signal));

2016-07-21 14:32:04 548

原创 [libevent]event/event_base/epollop/evsignal_info分析

经过了一个月对libevent1.4.13源码的学习,并且自己仿照了,码了一个c++版的,现在分享一下自己对源码关于epoll的一些分析。 学习源码的过程并挺好玩的,给想学习的同学以下建议:1.用source insight来看代码,非常方便,各种跳转功能和高亮,多窗口。2.可以看看张亮的分析,没有说对源码全部一句一句分析,其实也没必要,他讲得比较全面,剩下的代码自己完全可以看懂,

2016-07-21 13:48:18 410

原创 5月

恍恍惚惚5月就要过去了,现代操作系统只看了一丢丢,太多的毕业照要去拍,心静不下来,还有10天就要去北京了,也还没练习下算法,不过还是好好调整把,5月坚持下看看!把现代操作系统的前6章看完,再练下算法实验~~~

2016-05-18 18:57:44 275

原创 4月-好好学习

已经4月了,结束了蓝桥杯之后,把linux高性能服务器编程基本看完了,决定学习下LIBEVENT的源码!一个月搞得定么?听说4.15版本8000行代码左右,感觉应该能接受,不过是第一次读源码QAQ。干巴爹~~~

2016-04-05 15:18:47 223

原创 标签云 tagCloud 简单实现原理(还算好看)

实现原理很简单,可做优化。原理就是在一个区域内放第一个字(矩形),然后记录他的4个点(左上左下右上右下),入队列,,然后放下一个的时候,在队列取出一个点,然后第二个矩形根据这个点就有4种摆法,有些摆法可能不行,如图,第一个摆的有4个点,取出一个点,如左上,然后有4种摆法,图中给出三种,第4种和第一个摆的重合了所以不行,摆完第二个之后第二个的4个点入队列。之后根据队列

2016-03-28 11:42:39 8090 2

原创 第六届蓝桥杯-手链样式

练习的时候想过用哈希,想写觉得太麻烦了,最后想了好久想了种简单的思路,因为有翻转和旋转,所以每次得到的样式要旋转12次,翻转后再旋转12次,在这过程中得到最小的数,然后跟已有的数进行检查,如果没有的话就是新的样式了。#include #include using namespace std;long long arr[10000];const int k = 12;in

2016-03-15 10:23:11 2361

原创 算法竞赛入门-回溯-7.4.1-八皇后问题

八皇后问题,再一次加深了一下深搜。#include #include using namespace std;int via[3][15],nums = 0;void eight(int cur){ if(cur == 8) nums++; else for(int m = 0;m < 8;m++) { i

2015-10-30 00:00:26 717

原创 算法竞赛入门-枚举-7.3.3-二进制法

子集个数是2^n - 1用这种方法挺方便的~#include using namespace std;void subset(int n,int s){ for(int m = 0;m < n;m++) if(s&(1<<m)) cout << m ; cout << endl;}int main(){ in

2015-10-29 21:00:00 334

原创 算法竞赛入门-枚举-7.2.4-下一个排列

好东西~next的用处~#include #include using namespace std;int main(){ int nums; while(cin >> nums) { int arr[nums]; for(int m = 0;m < nums;m++) cin >> arr[m]

2015-10-29 13:50:59 245

原创 算法竞赛入门-枚举-7.2.1-生成1~n排列

改了一下,在0~9中生成n位数不重复。#include using namespace std;void C(int n,int* A,int cur,const int num = 9){ if(cur == n) { for(int i = 0;i < n;i++) cout << A[i];

2015-10-23 13:18:03 385

原创 算法竞赛入门-枚举-7.1.4-双基回文数

#include using namespace std;bool GetNum(int num,int n){ string s; while(num > 0) { s += num % n + '0'; num /= n; } for(int m = 0;m < s.size()/2;m++)

2015-10-22 15:25:21 265

原创 算法竞赛入门-枚举-7.1.1-除法

简单枚举,枚举前先想想怎么列才能列出比较少的运算量,同时如果不考虑时间的话,考虑写出比较容易写的代码也是挺重要的~#include #include using namespace std;bool abc(int a){ int num[] = {0,0,0,0,0,0,0,0,0,0}; for(int m = 0;m < 10;m++)

2015-10-22 14:32:48 470

原创 MFC框架程序剖析(5)

最后一个讲解,我们来讲一个按钮的例子加深一下对MFC框架的理解吧。首先,我们知道关于按钮的类是CButton,派生于CWnd,也是一个窗口类。我们利用这个类定义一个窗口类对象,创建完对象之后,你要产生这个窗口的话还要用到我们之前提过的CreateEx函数,从而生成窗口。那创建在哪里呢?我们再把图拿出来:明显,我们想把按钮显示在视窗口上,那么MFC又是采用了一种消息映射机制(

2015-10-12 20:38:45 343

原创 MFC框架程序剖析(4)

关于窗口类、窗口类对象和窗口的关系,我们在这理解一下:1.按之前的CAboutDlg类,我们都知道为窗口类。2.在这个类中又生成了一个具体的对象,但是如果我们不点帮助,它是不会生成窗口的。3.生成帮助窗口,我们关了帮助窗口,窗口销毁了但是这个窗口类对象并没有销毁,它是一直存在的。4.但是窗口类对象销毁时,窗口也随之销毁了。总结:窗口类对象和窗

2015-10-12 20:35:51 236

原创 MFC框架程序剖析(3)

我们来看下我们创建的窗口:视窗口对应的是CTESTView类,而主框架窗口对应的就是CMainFrame类,而CMainFrame和CTESTView都有共同一个基类CWnd,它封装了与窗口相关的操作。此外,还有个CTESTDoc类,不过它并不是一个窗口类,而是一个文档类。最后,CAboutDlg类基类其实是CDialog类,也派生与CWnd,故也是一个窗口类,例如

2015-10-12 20:25:22 291

原创 MFC框架程序剖析(2)

如果你创建过Win32应用程序,有一条明确的主线:首先进入WinMain函数,然后设计窗口类,注册窗口类,产生窗口,注册,显示,更新窗口,最后进入消息循环,将消息路由到窗口过程函数去处理。那MFC呢?还是假设我们创建了一个名为TEST的单文档工程,当我们运行这个工程时:1.首先会利用全局应用程序对象theApp启动应用程序,也就是我们的CTESTAPP。2.调用其构造函

2015-10-12 19:47:31 306

原创 MFC框架程序剖析(1)

最近学习,学完自然做下笔记,便于自己后面忘了的时候再看看。其实想学这个只是想做做上位机,但比如如果你照着网上那些例如串口通讯上位机等的教程去做,你也能做出来,但是不去了解一下MFC的框架你后面其实根本不了解为什么这些函数要放在哪,要怎么用,一头雾水。-----------------------------------------------------------分割线-----

2015-10-12 19:38:20 423

原创 String to Integer (atoi)

这道题让人不由的去思考会有什么输入。。。class Solution {public: int myAtoi(string str) { int f = 1,m = 0; long long nums = 0; if(str.empty()) return 0; while(str[m]

2015-10-09 08:46:35 281

原创 Implement strstr()

其实写完自己的code之后再去看看别人的解法确实是挺有用的,可以改善自己的代码,无论是长度还是效率上~class Solution {public: int strStr(string haystack, string needle) { size_t n,m; for(m = 0,n = 0;m < needle.size() &&

2015-10-05 22:52:50 269

原创 Longest Common Prefix

- -vector容器当为空的时候访问[]是直接出错的。class Solution {public: string longestCommonPrefix(vector& strs) { string s = ""; if(strs.empty()) return s; size_t len =

2015-10-05 16:00:58 196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除