我正在使用set进行练习,并且收到一条错误消息,我不知道如何解释。我对编程的技术方面不太了解。我是一名数学学生,所以我只专注于实际的编程本身,所以我不知道如何处理某些错误。使用std :: set的C++错误
我做了这个集合,并插入了从0到100的每个整数与端点。然后我想删除除2之外的所有可以被2整除的整数。下面的代码:
set<int> intSet;
for (int i = 0; i < 101; i++) {
intSet.insert(i);
}
for (set<int>::iterator twoDivIt = intSet.begin(); twoDivIt != intSet.end(); twoDivIt++) {
if (*twoDivIt % 2 == 0) {
if (*twoDivIt == 2) {
continue;
}
else {
intSet.erase(twoDivIt);
}
}
}
for (set<int>::iterator it = intSet.begin(); it != intSet.end(); it++) {
std::cout << *it << "\t";
}
我得到一个弹出窗口告诉我debuc断言失败,而“图/设置迭代器不递增的。”我做错了什么?
删除条目,而迭代是一个非常糟糕的主意。 – tkausl
在这种情况下,更好地循环整数并删除想删除的整数? – Auclair
为什么你甚至添加所有的整数?与其添加全部并删除偶数,您只需添加奇数。 – tkausl