How do I find the largest int in a std::set?

2019-03-11 13:40发布

问题:

I have a std::set<int>, what's the proper way to find the largest int in this set?

回答1:

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.



回答2:

Sets are always ordered. Assuming you are using the default comparison (less), just grab the last element in the set. rbegin() might be useful.



回答3:

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



回答4:

Since set sorts the element in ascending order by default, just pick up the last element in the set.



回答5:

Before you push() in your set<int> save the value in int max in global variable



标签: c++ stl stdset