我有一个std::set<int>
,找到这个集合中最大的 int 的正确方法是什么?
问问题
42794 次
6 回答
117
你用的是什么比较器?
默认情况下,这将起作用:
if(!myset.empty())
*myset.rbegin();
else
//the set is empty
这也将是常数时间,而不是像 max_element 解决方案那样是线性的。
于 2009-08-27T16:04:47.997 回答
34
集合总是有序的。假设您使用的是默认比较(更少),只需抓住集合中的最后一个元素。rbegin() 可能有用。
于 2009-08-27T16:06:16.683 回答
6
我相信您正在寻找std::max_element
:
该
max_element()
函数返回一个迭代器,指向范围 [start,end) 中的最大元素。
于 2009-08-27T16:03:43.660 回答
5
由于 set 默认按升序对元素进行排序,因此只需选取 set 中的最后一个元素。
于 2009-08-27T16:10:14.303 回答
1
if(!myset.empty())
*myset.rend();
else
//the set is empty
在有序整数集中,最后一个元素是最大的元素。
于 2021-12-16T11:06:46.260 回答
-4
在push()
您set<int>
将值保存int max
在全局变量中之前
于 2017-08-09T06:12:53.300 回答