私はstd::set<int>
、このセットで最大の整数を見つける適切な方法は何ですか?
どのコンパレータを使用していますか?
デフォルトではこれが機能します:
if(!myset.empty())
*myset.rbegin();
else
//the set is empty
これは、max_elementソリューションのような線形ではなく、一定時間にもなります。
セットは常に注文されます。デフォルトの比較(より少ない)を使用していると仮定すると、セットの最後の要素を取得するだけです。 rbegin()は役に立つかもしれません。
あなたが探していると思います _std::max_element
_ :
max_element()
関数は、範囲[start、end)の最大要素のイテレータを返します。
セットはデフォルトで要素を昇順でソートするため、セットの最後の要素を選択するだけです。