我正在使用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