Если вы хотите удалить 4 вместо последнего, используйте метод find.
В зависимости от варианта использования 4 может быть не последним.
std::set<int>::iterator it = setInt.find(4);
if(it != setInt.end()) {
setInt.erase(it);
}
Если вы хотите удалить последний элемент, используйте:
if (!setInt.empty()) {
setInt.erase(--setInt.rbegin().base());
// line above is equal to
// setInt.erase(--setInt.end());
}
Пока я не был уверен, если - *. End (); это О.К. Я немного почитал.
Таким образом, - on rbegin (). Base () приводит к тому же результату, что и - end ().
И оба должны работать.