map 取最大value

map 取最大value

源码:

/*
 * =====================================================================================
 *
 *       Filename:  max.cc
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  04/09/2012 12:57:56 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  kangle.wang (mn), wangkangluo1@gmail.com
 *        Company:  APE-TECH
 *
 * =====================================================================================
 */

#include <iostream>
#include <map>

#include <algorithm>
using namespace std;

template<class T>
bool pairCompare(const T & x, const T & y)
{
  return x.second < y.second;
}

template<class T>
typename T::const_iterator map_max_element(const T &A)
{
    typedef typename T::value_type pair_type;
    return max_element(A.begin(), A.end(), pairCompare<typename T::value_type>);
}

int main()
{
    map<float, int> A;
    map<float, int>::const_iterator it;
    // Data insert

    A.insert ( pair<float, int>( -2, 1) );
    A.insert ( pair<float, int>( 0, 5) );
    A.insert ( pair<float, int>( 2, -5) );

    it = map_max_element(A);

    cout << "Row with maximum second element of a Map: " << (*it).first << " , " << (*it).second << endl;

    return 0;
}

原文地址:https://www.cnblogs.com/wangkangluo1/p/2451086.html