Использование erase-remove_if идиома

Допустим, у меня естьstd::vector<std::pair<int,Direction>>.

Я пытаюсь использовать erase-remove_if идиома для удаления пар из вектора.

stopPoints.erase(std::remove_if(stopPoints.begin(),
                                stopPoints.end(),
                                [&](const stopPointPair stopPoint)-> bool { return stopPoint.first == 4; }));

Я хочу удалить все пары, для которых значение .first установлено в 4.

В моем примере у меня есть пары:

- 4, Up
- 4, Down
- 2, Up
- 6, Up

Однако после того, как я выполню erase-remove_if, у меня останется:

- 2, Up
- 6, Up
- 6, Up

Что я здесь не так делаю?

Ответы на вопрос(2)

Ваш ответ на вопрос