C迭代器到集合的最后一个元素

新手上路,请多包涵

我在 C++ 中有以下代码

#include <iostream>
#include <set>

using namespace std;

int main()
{
    set<int> a;
    int n;

    for(int i=0;i<3;i++){
      cin>>n;
      a.insert(n);
    }

    cout << *a.end();
    return 0;
}

为什么它总是打印“3”而不是集合中的最大元素?将 cout << *a.end(); 替换为 cout << *--a.end(); 工作正常。

原文由 Abdullah Shahriar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 375
1 个回答

对于 set<int>s

您也可以使用 *prev(s.end())

原文由 Rachit Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题