我在函数中有以下代码。
events
是一个全局变量:
map<string, map<string, deque<Event> > > events;
这是我的功能:
void remove_events(vector<Event> c_events)
{
vector<Event>::iterator it1;
deque<Event>::iterator it2;
for(it1 = c_events.begin(); it1 != c_events.end(); ++it1)
{
it2 = events[it1->device][it1->dev_id].begin();
while(it2 != events[it1->device][it1->dev_id].end())
{
if(*it1 == *it2)
{
it2 = events[it1->device][it1->dev_id].erase(it2);
}
else ++it2;
}
}
}
c_events
包含我要从事件中删除的对象。但是,在我尝试删除它们之后,对象仍然保留在事件中。
如果您需要我发布更多代码,请告诉我。