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...

Комментарии • 3

  • @-.-_-_.-_-ValerA..___._-.-_._-
    @-.-_-_.-_-ValerA..___._-.-_._- 3 месяца назад +1

    Да, но они занимают много оперативки, ведь перемещать значения надо (например, если будет размер массива 100000 и мы хотим удалить первый элемент, то надо будет перемещать 99999 элементов)

    • @DariaEmacs
      @DariaEmacs  3 месяца назад

      Можно его поменять местами с последним и сделать pop_back.

    • @GomerSimpson-scratch
      @GomerSimpson-scratch 2 месяца назад

      @@DariaEmacs эта техника, с pop_back() для вектора, известна ещё с 2000-х, в "Эффективном использовании STL" С. Майерса уже рекомендовалось её использовать для удаления элементов за константное время. А все эти идиомы бесполезный синтаксический сахар, с большим вопросом к производительности