摘要: 泛型算法的设计(2)前言: 前面我们讨论了一个泛型算法的实现思想,即设计一个算法,使其独立于所操作的容器,并且独立于所操作的元素类型,并分别用不同的机制实现了这两个目的,下面我们在算法设计中引入函数对象,实现算法独立于对元素的底层操作方式,这样我们实现了终极意义上的泛化,下面我们一步步的实现一个真正意义上的泛型算法。1.首先我们写一个函数,它可以找到vector内小于10的所有元素;vector<int> less_than_10(const vector<int> &vec){ vector<int> nvec; for(int ix=0; ix! 阅读全文
posted @ 2012-03-31 17:29 liuhao2638 阅读(248) 评论(0) 推荐(0)
摘要: 函数对象(Function Objects)前言: 在前面讨论函数的弹性设计时,我们介绍了通过函数指针的方式来扩展函数的弹性,在此,基于同样的目的我们引入函数对象这个概念。1.定义: 函数对象顾名思义,是行为类似函数的对象;class absInt{ int operator() (int val){ return val<0 ? -val:val; }} 像世间万物一样,函数对象有共性也有个性,所有函数对象的共性是,都重载了调用操作符(如上所示),其个性是不同的函数对象定义了执行不同操作的调用操作符,如plus重载了执行+操作符的调用操作符,equal_to重载了执行==的调用操作符, 阅读全文
posted @ 2012-03-31 11:27 liuhao2638 阅读(445) 评论(0) 推荐(0)