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