首页 > 解决方案 > 如何在 C++ 中打印集合中的最后一个元素

问题描述

我正在尝试打印set<int>s;实际最后一个元素为 9 的集合的最后一个元素。

set<int>:: iterator it=s.begin();
while(it!=s.end())
{
    cout<<*it<<endl;
    it++;
}

当我使用这个循环时,通过这个集合,它显示最后一个元素是 9,这是正确的。

但是当使用这段代码时,它显示最后一个元素是 4,这是不正确的。

int setint= *s.end();
cout<<setint<<endl;

但是当我使用此代码打印集合的第一个元素时,它会正确打印第一个元素

int setint= *s.begin();
    cout<<setint<<endl;

我该怎么办?

标签: c++stliteratorset

解决方案


end()超过集合的末尾。它永远不应该被取消引用。

您可以rbegin()改用:

if (!myset.empty()) {
    cout << *myset.rbegin() << endl;
}

推荐阅读