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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage