以下程序挂起。我知道,有几种方法可以通过更改代码来修复它。
// How to compile
// % g++ <filename>.cpp
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> empty;
set<int>::iterator iter = empty.begin() ;
while (iter++ != empty.end())
{
cout << *iter << "\n";
}
return 0;
}
我的问题是:
提前感谢您的答案。
答案 0 :(得分:0)
iter
已指向该集的结尾。不允许使用iter++
进一步增加它。解决方法是编写一个可以处理空范围的循环:
for (auto &it : empty)
for (; iter != empty.end(); ++iter)