Что означает следующий синтаксис с комбинацией стирания и удаления?

Возможный дубликат:
Разница между стиранием и удалением

Предположим, у меня есть контейнер …. что означает следующее.

c.erase(remove(c.begin(),c.end(),99),c.end());

не стирать и не удалять то же самое? Какова конкретная функция стирания и удаления в приведенном выше примере?

4

Решение

Удаляет все элементы, равные 99 из контейнера c,

std::remove на самом деле не удаляет какие-либо элементы. Он перемещает все представляющие интерес элементы во вторую часть контейнера и возвращает итератор, указывающий первый из них. Тогда erase Функция-член принимает диапазон итератора для фактического удаления элементов из контейнера.

Увидеть стереть-удалить идиому.

10

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector