Использование идиомы 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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