如何在std :: set <int>?</int>中找到最大的int

时间:2009-08-27 16:00:10

标签: c++ stl stdset

我有一个std::set<int>,找到这个集合中最大的int的正确方法是什么?

5 个答案:

答案 0 :(得分:91)

你使用什么比较器?

对于默认设置,这将起作用:

if(!myset.empty())
    *myset.rbegin();
else
    //the set is empty

这也是恒定时间,而不是像max_element解决方案那样的线性。

答案 1 :(得分:31)

始终订购套装。假设您正在使用默认比较(less),只需抓取集合中的最后一个元素。 rbegin()可能很有用。

答案 2 :(得分:6)

我相信您正在寻找std::max_element

  

max_element()函数返回一个   迭代器到最大的元素   范围[开始,结束]。

答案 3 :(得分:6)

由于set默认按升序对元素进行排序,只需选取集合中的最后一个元素。

答案 4 :(得分:-3)

push()之前set<int>保存全局变量int max中的值