C/C++
文章平均质量分 78
jedihy
这个作者很懒,什么都没留下…
展开
-
基于Thunk技术的Windows Timer的封装
由于最近项目是要开发一个BHO浏览器插件,我们需要使用定时器来轮询页面的变化。实际上,就是让定时器能够访问成员变量,或者说使定时器成为成员函数。但是,定时器调用的是一个回调函数(CALLBACK),回调函数是一个系统调用的函数,它被封装在类里面只能以static的方式定义。这种定义方式和我们的项目要求不符合,因为static函数只能访问static变量。所以我用Thunk技术对定时器回调进行了封装。原创 2013-11-23 02:14:16 · 1098 阅读 · 0 评论 -
希尔排序和优化
希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需排序的数据几乎是已排好的了(此时插入排序较快)。 希尔排序的具体细节: 希尔排序的实现如下: shellsort_original是最直观的实现,代码不够精简。 shellsort_i原创 2013-11-28 10:04:20 · 1201 阅读 · 0 评论 -
VC++函数调用过程汇编分析(基于vs2012)
本文将在VS2012环境下对函数调用过程的汇编代码进行分析。分析不到位或者存在错误的地方请批评指正,请与作者联系。 我们对下面最简单的这种函数调用进行分析。 int test(int a,int b){ int c; c = a + b; return c; }原创 2013-12-09 16:08:12 · 1629 阅读 · 0 评论 -
[LeetCode] 逆波兰表达式求值
逆波兰表达式求值 #include #include #include #include #include #include using namespace std; int evalRPN(vector &tokens) { stack _stack; stringstream result_s_str; string result_str; int result =原创 2013-11-28 17:00:06 · 1643 阅读 · 0 评论 -
虚函数的一些特性
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。 #include using namespace std; class AA{ public: AA(){ cout<<"AA"<<endl; } }原创 2014-01-12 02:52:28 · 1705 阅读 · 0 评论 -
结构体字节对齐笔记(Mac OS 10.9 中测试)
前言 结构体字节对齐相关的文章网络上有很多,看了其中几篇写的不错的之后,做了一点总结,仅供自己日后回忆,请网友忽略。看过众多关于字节对齐的博文中,写的我认为比较好的是实验室苏同学(ACM大神)写的http://c4fun.cn/blog/2014/01/11/struct-alignment/,本文有部分内容摘自这篇博客。另外Wiki上面的字节对齐讲的非常好,虽然是英文的。 字节对齐的目的很简原创 2014-01-21 21:23:12 · 1893 阅读 · 0 评论 -
UNP笔记(2)——基本套接字编程
二、socket基本函数-功能类 1.socket函数 #include int socket (int family, int type, int protocol); 进行socket通信的第一步就是调用socket函数。需要为socket函数指明协议族(family)、类型(type)和协议(protocol)。 这里需要注意的是,type和protocol需要正确组合,有一些组合原创 2014-01-28 22:32:35 · 1267 阅读 · 0 评论 -
UNP笔记(1)——基本结构体和工具函数
一、socket相关结构体 socket相关的结构体主要是存放地址的一些结构体,例如sockaddr_in(最常用)、sockaddr_in6(IPv6地址结构体)、sockaddr(socket的函数里面都用这个当参数,其他结构体强转过来)和sockaddr_storage。 1.IPv4套接字地址结构体 #include struct sockaddr_in {原创 2014-01-23 21:43:23 · 1591 阅读 · 0 评论 -
在Mac os 10.9(Mavericks)中安装NS-2.35附自己制作的patch[修正一个错误]
前言 在Mac OS 10.9这个最新的系统下安装NS-2.35存在一些小困难,相信困扰到一些同学了。网上有针对10.6/7的patch,但是在OS 10.9上,并且更新了新的Xcode后,会因为编译器的原因导致一些错误。本人看了很多老外也在stack overflow上求助。 方法和步骤 我一番折腾之后,修复了所有安装过程出现的问题,为了下次安装可以省事,就干脆直接制作了一个patch,方便他人安装。原创 2014-01-12 06:45:36 · 6643 阅读 · 10 评论