我想不开
c4droid吧
全部回复
仅看楼主
level 10
昵称君😂
楼主
2017年06月21日 14点06分
1
level 10
昵称君😂
楼主
放到上面就会会闪退
2017年06月21日 14点06分
2
不知者来此
最好不要在这个循环里操作(删除或者添加)这个数据。建议先标记好要删的元素,再在循环之外进行删除
2017年06月21日 14点06分
不知者来此
根据你的代码,你只需要匹配一次就可以擦除元素并break退出循环,如此你就可以把++it放在上面而不必担心数据改变后,++it会引用错误的内存。
2017年06月21日 15点06分
昵称君😂
回复 不知者来此 看楼下
2017年06月21日 17点06分
level 12
幻🔯世
没学过范围for? 学C++居然不用OOP,泛型!你main函数要写几百行!
2017年06月21日 16点06分
3
昵称君😂
范围fot好像不可以用作删除vector的元素吧
2017年06月21日 17点06分
level 10
昵称君😂
楼主
@不知者来此
2017年06月21日 17点06分
4
不知者来此
这就是你的不对了,如果没有匹配到元素,你也要删除它吗?
2017年06月21日 23点06分
不知者来此
从逻辑上看,应该把erase放在for内部的break前面,因为你已经及时退出了for循环,所以不会有什么问题。
2017年06月21日 23点06分
不知者来此
但如果像这个图中的那样,万一匹配不中,it就是无效的,再erase的话就不对了
2017年06月21日 23点06分
level 10
昵称君😂
楼主
2017年07月06日 12点07分
5
level 9
sahban
说个题外话,既然已经声明了fingerpos,那for (auto i = fingerpos.begin();不就行了
2017年07月06日 13点07分
6
1