Использование 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
Что я здесь не так делаю?