列表迭代器已初始化,但是在之后失败断言?

时间:2018-02-24 17:42:32

标签: c++ listiterator

所以我在列表中运行并擦除了不能被5和11整除的值。在我将迭代器初始化到列表的开头之后,我断言迭代器是否与开头匹配列表,但它立即失败。为什么这不起作用?

for(std::list<int>::iterator itr = numlist.begin(); itr != numlist.end(); itr++) {
    assert(itr == numlist.begin());
    if(*itr % 5 == 0 || *itr % 11 == 0) {
       itr = numlist.erase(itr);
   }
}

0 个答案:

没有答案