J'ai un std::set<int>
, quelle est la bonne façon de trouver le plus grand int de cet ensemble?
Quel comparateur utilisez-vous?
Par défaut, cela fonctionnera:
if(!myset.empty())
*myset.rbegin();
else
//the set is empty
Ce sera également un temps constant au lieu d'être linéaire comme la solution max_element.
Les sets sont toujours commandés. En supposant que vous utilisez la comparaison par défaut (moins), saisissez simplement le dernier élément de l'ensemble. rbegin () pourrait être utile.
Je crois que vous recherchez std::max_element
:
La fonction
max_element()
renvoie un itérateur au plus grand élément de la plage [début, fin).
Puisque set trie l'élément par ordre croissant par défaut, il suffit de prendre le dernier élément de l'ensemble.