How can I delete elements of a std::map with an iterator?

前端 未结 3 1081
孤城傲影
孤城傲影 2020-12-13 03:35

I would like to loop through an std::map and delete items based on their contents. How best would this be done?

3条回答
  •  心在旅途
    2020-12-13 04:20


    This is one simple way:

        int value_to_delete( 2 );
        for( std::map::iterator i = mm.begin(); i != mm.end(); ) {
            if( i->second != value_to_delete ) {
                mm.erase( i++ ); // advance before iterator become invalid
            }
            else {
                ++i;
            }
        }
    

提交回复
热议问题