zoukankan      html  css  js  c++  java
  • 【STL】-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     
  • 相关阅读:
    0-J2EE
    3-Spring
    linux部分常用命令
    linux配置bond
    免密登录和配置网卡
    配置网卡的子接口
    mysqldump备份
    python的数据结构
    mysql一主一从复制
    Python3 基本数据类型和类型转换
  • 原文地址:https://www.cnblogs.com/dracohan/p/3855374.html
Copyright © 2011-2022 走看看