vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it) 这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效! map则可以直接erase(it++); vector和map都不能将it++写在for循环中,而在循环体内erase(it)! 代码如下:void main(){ vector<int> v; v.push_back(1); v.push_back(2); v.push_back(4); v.push_back(3); v.pus
评论星级较低,若资源使用遇到问题可联系上传者,3个工作日内问题未解决可申请退款~
- 1
- 2
前往页