【发布时间】:2016-07-15 06:43:30
【问题描述】:
我有以下代码:
bool resetTypeBit = true;
for (auto it = eventsList.begin(); it != eventsList.end(); ++it) {
CreatureEvent* curEvent = *it;
if (curEvent == event) {
it = eventsList.erase(it);
} else if (curEvent->getEventType() == type) {
resetTypeBit = false;
}
}
所以我有以下场景:eventList 包含 01 项,然后,一旦for 语句第一次通过并遇到it = eventsList.erase(it); 行,it 变量就变为无效,在for 语句的下一次迭代中导致分段错误。
任何可能导致问题的线索?
【问题讨论】: