Spec-Zone.ru › C++

std::forward_list<T,Allocator>::erase_after

iterator erase_after( const_iterator pos );
(1) (since C++11)
iterator erase_after( const_iterator first, const_iterator last );
(2) (since C++11)

Удаляет указанные элементы из контейнера.

1) Удаляет элемент, следующий за pos.
2) Удаляет элементы, следующие за first, до last.

Параметры

pos - итератор на элемент, предшествующий удаляемому элементу
first, last - диапазон элементов для удаления

Возвращаемое значение

1) Итератор на элемент, следующий за удаленным, или end() если такого элемента нет.
2) last

Сложность

1) Постоянная.
2) Линейная относительно расстояния между first и last.

Пример

#include <forward_list>
#include <iostream>
#include <iterator>
 
int main()
{
    std::forward_list<int> l = {1, 2, 3, 4, 5, 6, 7, 8, 9};
 
//  l.erase(l.begin()); // Error: no function erase()
 
    l.erase_after(l.before_begin()); // Removes first element
 
    for (auto n : l)
        std::cout << n << ' ';
    std::cout << '\n';
 
    auto fi = std::next(l.begin());
    auto la = std::next(fi, 3);
 
    l.erase_after(fi, la);
 
    for (auto n : l)
        std::cout << n << ' ';
    std::cout << '\n';
}

Вывод:

2 3 4 5 6 7 8 9
2 3 6 7 8 9

См. также

clear
очищает содержимое
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/forward_list/erase_after

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API