function object用法

 1 // Generic findMax, with a function object, version #1
 2 // Precondition,  a.size() > 0
 3 #include <iostream>
 4 #include <vector>
 5 #include <string.h>
 6 using namespace std;
 7
 8 template <class Object, class Comparator>
 9 const Object& findMax(const vector<Object> &arr, Comparator cmp)
10 {
11     int maxIndex = 0;
12     for(int i = 1; i < arr.size(); i++) {
13         if(cmp.isLessThan(arr[maxIndex], arr[i]))
14             maxIndex = i;
15     }
16     return arr[maxIndex];
17 }
18
19 #include <functional>
20 template <class Object>
21 const Object& findMax(const vector<Object> &arr)
22 {
23     return findMax(arr, less<Object>() );
24 }
25
26 class CaseInsensitiveCompare {
27     public:
28             bool isLessThan(const string &lhs, const string &rhs) const
29                 {return (stricmp(lhs.c_str(), rhs.c_str())< 0); }
30 };
31
32 int main()
33 {
34     vector<string> arr(3);
35     arr[0] = "ZEBRA"; arr[1] = "alligator"; arr[2] = "crocodile";
36     cout << findMax(arr, CaseInsensitiveCompare()) << endl;
37     //cout << findMax(arr) << endl;
38     return 0;
39 }
40
41
42
43
44     

function object用法

时间: 2024-11-05 09:22:42

function object用法的相关文章

flask_route错误:AttributeError: &#39;function&#39; object has no attribute &#39;route&#39;

问题: 路由完全正确,当只有一个名为home的函数处理这个路由时候,下一个路由处理函数,总是提示没有这个rotue属性 Traceback (most recent call last): File "E:/workspace/wei-move/manage.py", line 3, in <module> from app import app File "E:\workspace\wei-move\app\__init__.py", line 10,

函数对象状态(Function Object State)获取 -- 引用传递和for_each()

一般情况下function object默认值传递,无法获取其状态.本文以引用传递和for_each()两种方法获取function object状态. 引用方式传递function object 以引用方式传递function object程序示例: #include <iostream> #include <list> #include <algorithm> #include <iterator> using namespace std; templa

c++ 11学习笔记--Lambda 表达式(对比测试Lambda ,bind,Function Object)

所有c++ coder都应该为这个语法感到高兴,说的直白一点,Lambda 表达式就是函数对象的语法糖. 还是直接看对比栗子吧,抄袭的是msdn的官网 该示例使用 for_each 函数调用中嵌入的 lambda 向控制台打印 vector 对象中的每个元素是偶数还是奇数. 使用lambda #include <algorithm> #include <iostream> #include <vector> using namespace std; int main()

认识js函数对象(Function Object)

认识函数对象(Function Object) 可以用function关键字定义一个函数,对于每个函数可以为其指定一个函数名,通过函 数名来进行调用.这些都是代码给用户的印象,而在JavaScript解释执行的时候,实际上每 个函数都是被维护为一个对象,这就是本小节将要介绍的函数对象(Function Object). 函数对象与其它用户所定义的对象有着本质的区别,这一类对象被称之为内部对象,例 如日期对象(Date).数组对象(Array).字符串对象(String)都是属于内部对象.换句话

js中,(function(){})()的用法解析

(function($){...})(jQuery)  含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下看. 这里实际上是匿名函数 function(arg){...} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})(param) 这就相当于定义了一个参数为arg的匿名函数,并且

2.在使用&quot;node-xlsx&quot; 模块时报&quot; TypeError: Object function Object() { [native code] } has no method &#39;assign&#39; &quot;

最近做一个关于数据库数据以xls格式导出的功能.由于之前用的"excel-export"模块功能有不是很全.也有可能是我没完全弄明白怎么使用这个模块生成多页的excel文件吧.后来就选用了'node-xlsx'模块来做.但是在使用demo的时候,会报一个TypeError: Object function Object() { [native code] } has no method 'assign的错误.网上查了半天也没找到相关信息.后来终于找到一篇文章.(链接:https://w

c/c++ 重载运算符 标准库function的用法

重载运算符 标准库function的用法 问题:int(int, int)算不算一种比较通用的类型?? 比如函数: int add(int a, int b); 比如lambda:auto mod = [](int a, int b){return a % b}; 比如函数对象类:int operator()(int a, int b); 上面3个的共同特征就是:int(int, int),但是如何让上面的3种形式变成共同的的呢??? 答案:使用function类. std::function<

python3新特性函数注释Function Annotations用法分析

本文分析了python3新特性函数注释Function Annotations用法.分享给大家供大家参考,具体如下: Python 3.X新增加了一个特性(Feature),叫作函数注释 Function Annotations 它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可做为函数额外的注释来用. Python中普通的函数定义如下: def func(a,b): return a+b print(func(1, 2)) #3 添加了函数注释的函数会变成如下形式 def func(a:

深入探究 Function &amp; Object 鸡蛋问题 - 黄庆的博客

引言 这篇文章深入探究下 Function.__proto__ === Function.prototype 引起的鸡生蛋蛋生鸡问题,并在这个过程中深入了解 Object.prototype. Function.prototype. function Object . function Function 之间的关系. Object.prototype Object.prototype 表示 Object 的原型对象,其 [[Prototype]] 属性是 null,访问器属性 __proto__