STL C++ | erase-remove идиома
HTML-код
- Опубликовано: 25 янв 2024
- Кто не слышал об идиоме erase-remove? Это всем известная техника в С++ применяется, когда необходимо удалить из контейнера элементы, соответствующие определенному критерию.
en.wikipedia.org/wiki/Erase%E...
std::remove
en.cppreference.com/w/cpp/alg...
en.cppreference.com/w/cpp/con...
std::erase
en.cppreference.com/w/cpp/con...
Да, но они занимают много оперативки, ведь перемещать значения надо (например, если будет размер массива 100000 и мы хотим удалить первый элемент, то надо будет перемещать 99999 элементов)
Можно его поменять местами с последним и сделать pop_back.
@@DariaEmacs эта техника, с pop_back() для вектора, известна ещё с 2000-х, в "Эффективном использовании STL" С. Майерса уже рекомендовалось её использовать для удаления элементов за константное время. А все эти идиомы бесполезный синтаксический сахар, с большим вопросом к производительности