web-dev-qa-db-fra.com

Comment trouver le plus grand int dans un std :: set <int>?

J'ai un std::set<int>, quelle est la bonne façon de trouver le plus grand int de cet ensemble?

57
leeeroy

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.

94
CTT

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.

31
Darryl

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).

5
Andrew Hare

Puisque set trie l'élément par ordre croissant par défaut, il suffit de prendre le dernier élément de l'ensemble.

5
Naveen