论文部分内容阅读
摘要:C 中的函数对象是一种特殊的对象,使用起来特别灵活。掌握并使用好函数对象可以大大精简代码。该文在介绍函数对象概念的同时总结了函数对象的几点应用。
关键词:函数对象;泛型算法;函数模版; C 语言
中图分类号:TP312文献标识码:A文章编号:1009-3044(2011)09-2185-03
Application of Function Objects in the Generic Algorithm
DING Ya-guang
(Computer Science, Anhui University, Hefei 230000, China)
Abstract: Function objects are special object that could be applied flexibly. We can greatly simplify and compact the code by using function objects. This paper introduces the concept of function objects, as well, summarizes some applications.
Key words: function object; generic algorithm; function template; C
學过javascript的同学可能会知道“函数对象“(javascript中的函数都是被维护为一个对象)这个词,但是C 中的函数对象和javascript中的却完全没有关系。
C 中的函数对象就是重载了操作符()的类的对象。那么它有什么特殊意义呢?《C Primer》中说了:更加灵活的在泛型算法中使用。究竟怎样更加灵活了呢?让我们一个个的来发现。
1 传统的函数重载方法
如果我们想对一个数组a[N](成员可能是非基本变量类型)进行排序,可以使用以下几种方法:
方法一:重载<操作符
如果数组元素的类型没有定义过<操作符,手动重载定义,然后调用STL库函数sort(a.begin(),a.end());
使用方法如下面的代码:
T a[N];
bool operator < (const Type
关键词:函数对象;泛型算法;函数模版; C 语言
中图分类号:TP312文献标识码:A文章编号:1009-3044(2011)09-2185-03
Application of Function Objects in the Generic Algorithm
DING Ya-guang
(Computer Science, Anhui University, Hefei 230000, China)
Abstract: Function objects are special object that could be applied flexibly. We can greatly simplify and compact the code by using function objects. This paper introduces the concept of function objects, as well, summarizes some applications.
Key words: function object; generic algorithm; function template; C
學过javascript的同学可能会知道“函数对象“(javascript中的函数都是被维护为一个对象)这个词,但是C 中的函数对象和javascript中的却完全没有关系。
C 中的函数对象就是重载了操作符()的类的对象。那么它有什么特殊意义呢?《C Primer》中说了:更加灵活的在泛型算法中使用。究竟怎样更加灵活了呢?让我们一个个的来发现。
1 传统的函数重载方法
如果我们想对一个数组a[N](成员可能是非基本变量类型)进行排序,可以使用以下几种方法:
方法一:重载<操作符
如果数组元素的类型没有定义过<操作符,手动重载定义,然后调用STL库函数sort(a.begin(),a.end());
使用方法如下面的代码:
T a[N];
bool operator < (const Type