如何在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中