L_J_SHOU

06 2014 档案

绝不在构造和析构函数中调用 virtual 函数
摘要:看下面的这段代码,问 print调用的是基类还是派生类的版本?答案是 基类。。。可能大家会很惊讶,print不是virtual function 吗?为什么不是调用派生类的版本呢?首先,当定义一个派生类的对象的时候,由于 base class 构造函数的执行更早于 derived class构造函数... 阅读全文

posted @ 2014-06-29 10:35 L_J_SHOU 阅读(156) 评论(0) 推荐(0)

C++ mem_fun 和 mem_fun_ref 的用法
摘要:假设我们有以下的一个类:另外有一个包含 class A 对象的数组: vector vec;如何对每一个类的对象调用成员函数print.做法1: 利用下标for(int i=0; i::const_iterator it=vec.begin(); it!=vec.end(); ++it) { it... 阅读全文

posted @ 2014-06-28 20:48 L_J_SHOU 阅读(561) 评论(0) 推荐(0)

vim ---- 一键自动indent的命令
摘要:当用vim拷贝某一段代码到另一个程序的时候,往往indent会有一些问题。。下面这个强大的命令能够让你一键让代码有很好的格式。gg=G例子: 阅读全文

posted @ 2014-06-17 16:56 L_J_SHOU 阅读(394) 评论(0) 推荐(0)

数据结构《21》----2014 WAP 初试题----Immutable queue
摘要:2014 WAP初试题----实现一个不可变的队列:看似很简单。。实则,不同的版本效率的差距可能是巨大的。。甚至难以想象。。之前用STL库的queue进行了对比,差别非常大。。用上一篇文章的immutable stack 来实现 immutable queue.其实就是用两个栈实现队列,具体的思想可... 阅读全文

posted @ 2014-06-17 15:08 L_J_SHOU 阅读(167) 评论(0) 推荐(0)

数据结构《20》----Immutable stack
摘要:有趣的函数式数据结构《一》----不可变栈什么是不可变?往栈中插入一个元素,原来的栈保持不变,返回一个新的栈(已插入新的元素)。push, pop,getMax 等操作都要求在 常数时间内完成。可能读者会产生疑惑,既然要返回一个新的栈,是不是就必须先拷贝一份原来的栈,然后在新的栈中插入元素。但是这样... 阅读全文

posted @ 2014-06-17 14:55 L_J_SHOU 阅读(212) 评论(0) 推荐(0)