跳至主要內容

C++

LincZero小于 1 分钟

C++

目录

仿函数

大小比较仿函数

  • “ 所有 algorithms,其内最终涉及元素本身的操作,无非就是比大小 ”

  • 仿函数的用法

    bool strLonger(const string& s1, const string& s2){
        return s1.size()< s2.size();
    }
    
    cout << "max of zoo and hello : "
    	<< max(string("zoo"), string("hello")) <<endl;				// zoo
    
    cout << "max of zoo and hello : "
    	<< max(string("zoo"), string("hello"), strLonger) <<endl;	// hello
    
  • 算法 Algorithms(比大小)

    template <class T>
    inline const T& min(const T& a, const T& b){
        return b<a?b:a;
    }
    
    template <class T>
    inline const T& max(const T& a, const T& b){
        return a<b?b:a;
    }
    
    template <class T, class Compare>
    inline const T& min(const T& a, const T& b, Compare comp){	// Compare是比较大小的仿函数
        return comp(b,a)?b:a;
    }
    
    template <class T, class Compare>
    inline const T& max(const T& a, const T& b, Compare comp){	// Compare是比较大小的仿函数
        return comp(a,b)?b:a;
    }