Как извлечь последний элемент std::set?
Пытаюсь так, но выдаёт ошибку:
std::set<int> x = {1,2,3};
x.extract(x.crbegin());
Ну, все-таки reverse_iterator - не обычный итератор, так что для его применения следует использовать значение, на которое он указывает:
x.extract(*x.crbegin());
правда. У этого решения есть и минус - дополнительный поиск для извлечения.
Второй вариант вам указал @VTT - использовать прямой итератор:
x.extract(--(x.end()));
Сборка персонального компьютера от Artline: умный выбор для современных пользователей