在multiset c ++中擦除元素时出错

时间:2018-05-02 16:08:08

标签: c++ stl containers multiset

我是一个带有成员变量的类,它是

multiset < pair<TrainType, map<string, set<tm>>>> m_oTrainGraphic;

TrainType是枚举。我在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);
                    }
                }

            }
        }
    }

问题在于我在尝试删除它时遇到错误。谢谢你的建议!

0 个答案:

没有答案