std::vector<std::pair<int,int> > und std::max_element, wie second fuer den Vergleich und nicht first
-
Hi,
ich habe folgenden Code:
vector<pair<int,int> >data; data.push_back(make_pair(0,0)); data.push_back(make_pair(1,-1)); data.push_back(make_pair(2,-2)); vector<pair<int,int> >::iterator vi = std::max_element(data.begin(),data.end());std::max_element gibt mir das groesste Element aus dem vector zurueck das durch den Vergleich von dem pair.first Elementen gefunden wird. Was muss ich veraendern damit das second Element als Vergleichskriterium herangezogen wird?
Besten Dank

-
Du kannst eine eigene Vergleichsfunktion angeben, siehe die Beispiele hier:
http://www.cplusplus.com/reference/algorithm/max_element/
Mit einem C++11-Compiler kannst du auch einen lambda-Ausdruck (das ist so eine Art lokale Funktion, die man direkt im Aufruf von max_element definieren kann) benutzen.
-
Danke fuer den Link. Jetzt klappt es!