remove_if mit map?



  • Ich habe folgende Map und würde gerne alles entfernen was kleiner "mean" (Der Wert) ist:

    std::map<unsigned int, unsigned int> myMap
    

    Aufgegeben habe ich hiermit:

    std::remove_if(myMap.begin(), myMap.end(), [&mean](std::pair<const unsigned int, unsigned int>& p) { return p.second < mean ? true : false; });
    

    Ich erhalte beim kompilieren immer irgendwelche const-Fehler. Wie lautet die korrekte Syntax 😕


  • Mod

    remove_if funktioniert nicht mit assoziativen Containern, da es die Range neu ordnet.

    Probier mal

    myMap.erase(myMap.begin(), myMap.lower_bound(mean));
    

Anmelden zum Antworten