我有一个std::set<int>
,找到这个集合中最大的int的正确方法是什么?
答案 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
中的值