C++
snail_running
做最真实的自己!
展开
-
If-else与三目运算符的区别
某日一个同学在做算法题,(旅游背包)在OJ系统提交时超时 我们在设法优化代码减少运行时间时,发现貌似If-else比三目运算?: 更快一点。 于是,用VC写了一段简短的测试。同样是双重循环中执行 if-else与三目运算,计算其花费的时间。 a=100,b=50,n为测试变量 start=clock(); for(i=1;i { for(j=1;j {转载 2016-02-20 23:52:46 · 500 阅读 · 0 评论 -
寻找最大的K个数,Top K问题的堆实现
寻找最大的K个数,Top K问题的堆实现寻找最大的K个数,如果所有的数据全部可以放入内存,就可以使用random select算法在线性时间内寻找第K大的数,再得到最大的K个数。转载 2016-02-21 09:29:48 · 362 阅读 · 0 评论 -
为什么构造函数不能为虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。 2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数转载 2016-02-21 10:34:47 · 363 阅读 · 0 评论 -
函数调用的区别:_cdecl以及_stdcall
一、概念 1)_stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,由调用者完成压栈操作,被调函数自身在返回前清空堆栈。 WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题: #define WINAPI _stdcall 按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加转载 2016-02-21 11:03:43 · 308 阅读 · 0 评论