Using erase-remove_if idiom
Sagen wir, ich habestd::vector<std::pair<int,Direction>>
.
Ich versuche, erase-remove_if zu verwenden, um Paare aus dem Vektor zu entfernen.
stopPoints.erase(std::remove_if(stopPoints.begin(),
stopPoints.end(),
[&](const stopPointPair stopPoint)-> bool { return stopPoint.first == 4; }));
Ich möchte alle Paare löschen, deren erster Wert auf 4 gesetzt ist.
n meinem Beispiel habe ich Paare:
- 4, Up
- 4, Down
- 2, Up
- 6, Up
Nachdem ich erase-remove_if ausgeführt habe, verbleibe ich mit:
- 2, Up
- 6, Up
- 6, Up
Was mache ich hier falsch?