1
我在調試模式下運行我的代碼,程序彈出一個斷言失敗的消息。請幫我找出哪個部分導致這個斷言失敗。 :{爲什麼向量拋出這個斷言失敗的警報?
Debug Assertion Failed!
Expression: vector iterators incompatible
代碼:
int main()
{
vector<int> a(5);
fill(a.begin(), a.end(), 5);
a[2] = 3;
a[1] = 2; //so now a = {5,2,3,5,5}
auto it = a.begin();
for (; it != a.end();)
{
if (*it == 5)
a.erase(it); //Remove 5
else
it++;
}
copy(a.begin(), a.end(), ostream_iterator<int>(cout, "\n"));
}
順便說一句,如果您使用擦除刪除語言,'std :: remove'已經做到了這一點。 – chris