如何在std :: set <int>中find最大的int?
我有一个std::set<int>
,find这个集合中最大的int的正确方法是什么?
你用什么比较器?
对于默认情况下,这将工作:
if(!myset.empty()) *myset.rbegin(); else //the set is empty
这也将是恒定的时间,而不是像max_element解决scheme的线性。
集合总是有序的。 假设你正在使用默认的比较(less),只需抓住集合中的最后一个元素。 rbegin()可能是有用的。
我相信你正在寻找std::max_element
:
max_element()
函数将迭代器返回到范围[start,end)中的最大元素。
由于set默认按照升序排列元素,只需拾取集合中的最后一个元素。
在你的set<int>
push()
中push()
之前, push()
int max
中的值保存在全局variables中