Ошибка при удалении элемента в мультисете с ++
Я класс с переменной члена, которая
multiset < pair<TrainType, map<string, set<tm>>>> m_oTrainGraphic;
TrainType - это enum. Я вставляю некоторые элементы в m_oTrainGraphic
Контейнер. У меня есть метод, который принимает параметр типа tm
и что я не хочу делать, это удалить те элементы, которые имеют элемент типа tm
который равен параметру метода. Вот метод.
bool DeleteTrain(const tm& time)const
{
for (auto it = m_oTrainGraphic.begin(); it != m_oTrainGraphic.end(); ++it)
{
for (auto iter = it->second.begin(); iter != it->second.end(); ++iter)
{
for (auto i = iter->second.begin(); i != iter->second.end(); ++i)
{
if (i->tm_hour == time.tm_hour
&& i->tm_min == time.tm_min)
{
m_oTrainGraphic.erase(it);
}
}
}
}
}
Проблема в том, что я получаю ошибку при попытке стереть его. Спасибо за совет!