很多初学者可能会写出如下错误代码

错误示范:删除nums里面的1

std::vector<int> nums= {1, 2, 3, 4};
for (std::vector<int>::iterator it = nums.begin(); it != nums.end(); it++)
 {
    if (*it == 1)
     {
        nums.erase(it);
     }
 }

这样写就说明大家对erase的用法不清楚而导致的,erase用法如下

删除vector中的元素_C++

正确的写法
for (std::vector<int>::iterator it = nums.begin(); it != nums.end();)
 {
    if (*it == 1) 
    {
        it = nums.erase(it);
    } 
    else 
    {
        ++it;
    }
}