Подтвердить что ты не робот

Как найти наибольший int в std:: set <int>?

У меня есть std::set<int>, какой правильный способ найти наибольший int в этом наборе?

4b9b3361

Ответ 1

Какой компаратор вы используете?

По умолчанию это будет работать:

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

Это будет также постоянное время вместо линейного, как решение max_element.

Ответ 2

Наборы всегда упорядочены. Предполагая, что вы используете сравнение по умолчанию (меньше), просто возьмите последний элемент в наборе. rbegin() может быть полезным.

Ответ 3

Я считаю, что вы ищете std::max_element:

Функция max_element() возвращает итератор к самому большому элементу в диапазон [начало, конец].

Ответ 4

Поскольку set по умолчанию сортирует элемент по возрастанию, просто заберите последний элемент в наборе.

Ответ 5

Прежде чем push() в set<int> сохраните значение в int max в глобальной переменной