J’ai un std::set
, comment trouver le plus grand int dans cet ensemble?
Quel comparateur utilisez-vous?
Pour le défaut cela fonctionnera:
if(!myset.empty()) *myset.rbegin(); else //the set is empty
Ce sera aussi un temps constant au lieu de linéaire comme la solution max_element.
Les ensembles 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.
Comme set sortinge l’élément par défaut dans l’ordre croissant, il suffit de sélectionner le dernier élément de l’ensemble.
Je crois que vous recherchez std::max_element
:
La fonction
max_element()
renvoie un iterator au plus grand élément de la plage [début, fin].
Avant de push()
dans votre set
enregistre la valeur dans int max
en variable globale