I have a std::set
, what\'s the proper way to find the largest int in this set?
What comparator are you using?
For the default this will work:
if(!myset.empty())
*myset.rbegin();
else
//the set is empty
This will also be constant time instead of linear like the max_element solution.
Sets are always ordered. Assuming you are using the default comparison (less), just grab the last element in the set. rbegin() might be useful.
I believe you are looking for std::max_element:
The
max_element()
function returns an iterator to the largest element in the range [start,end).
Since set sorts the element in ascending order by default, just pick up the last element in the set.
Before you push()
in your set<int>
save the value in int max
in global variable