vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it),这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效。
map则可以直接erase(it++)。
vector和map都不能将it++写在for循环中,而在循环体内erase(it)!
vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it),这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效。
map则可以直接erase(it++)。
vector和map都不能将it++写在for循环中,而在循环体内erase(it)!