У меня есть std::set<int>, как правильно найти наибольшее значение int в этом наборе?
std::set<int>
Какой компаратор вы используете?
По умолчанию это будет работать:
if(!myset.empty()) *myset.rbegin(); else //the set is empty
Это также будет постоянное время, а не линейное, как у решения max_element.
Наборы всегда заказываются. Предполагая, что вы используете сравнение по умолчанию (меньше), просто возьмите последний элемент в наборе. Может быть полезным rbegin ().
Поскольку set сортирует элемент по возрастанию по умолчанию, просто выберите последний элемент в наборе.
Я полагаю, вы ищете std::max_element:
std::max_element
Функция max_element() возвращает итератор для самого большого элемента в диапазон [начало, конец).
max_element()
Перед тем, как push() в вашем set<int> сохраните значение в int max в глобальной переменной
push()
set<int>
int max