Использование идиомы Erase-remove_ifC++

Программы на C++. Форум разработчиков
Anonymous
Использование идиомы Erase-remove_if

Сообщение Anonymous »

Предположим, у меня есть std::vector.

Я пытаюсь использовать стереть-удалить_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
Однако после выполнения replace-remove_if у меня остается:

Код: Выделить всё

- 2, Up
- 6, Up
- 6, Up
Что я здесь делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/390 ... e-if-idiom

Вернуться в «C++»