如何从集合中删除最后一个成员?

例如:

set<int> setInt;
setInt.insert(1);
setInt.insert(4);
setInt.insert(3);
setInt.insert(2);

如何从4删除setInt?我尝试了类似的东西:
 setInt.erase(setInt.rbegin());

但我收到一个错误。

最佳答案

if (!setInt.empty()) {
    std::set<int>::iterator it = setInt.end();
    --it;
    setInt.erase(it);
}

顺便说一句,如果您要执行很多操作(以任意顺序将内容添加到集合中,然后删除顶部元素),则还可以查看std::priority_queue,以查看是否适合您的用法。

10-08 17:27