web-dev-qa-db-ja.com

std :: set <int>で最大のintを見つけるにはどうすればよいですか?

私はstd::set<int>、このセットで最大の整数を見つける適切な方法は何ですか?

57
leeeroy

どのコンパレータを使用していますか?

デフォルトではこれが機能します:

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

これは、max_elementソリューションのような線形ではなく、一定時間にもなります。

94
CTT

セットは常に注文されます。デフォルトの比較(より少ない)を使用していると仮定すると、セットの最後の要素を取得するだけです。 rbegin()は役に立つかもしれません。

31
Darryl

あなたが探していると思います _std::max_element_

max_element()関数は、範囲[start、end)の最大要素のイテレータを返します。

5
Andrew Hare

セットはデフォルトで要素を昇順でソートするため、セットの最後の要素を選択するだけです。

5
Naveen