imt*_*nan 1 c++ iterator stl set
我正在尝试打印set<int>s;实际最后一个元素为 9的集合的最后一个元素。
set<int>:: iterator it=s.begin();
while(it!=s.end())
{
cout<<*it<<endl;
it++;
}
Run Code Online (Sandbox Code Playgroud)
当我使用这个循环时,通过这个集合,它显示最后一个元素是 9,这是正确的。
但是当使用这段代码时,它显示最后一个元素是 4,这是不正确的。
int setint= *s.end();
cout<<setint<<endl;
Run Code Online (Sandbox Code Playgroud)
但是当我使用此代码打印集合的第一个元素时,它会正确打印第一个元素
int setint= *s.begin();
cout<<setint<<endl;
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
end()点在集合的末尾。它永远不应该被取消引用。
您可以rbegin()改用:
if (!myset.empty()) {
cout << *myset.rbegin() << endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |