Namespaces
Variants

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

From cppreference.net
iterator erase_after ( const_iterator pos ) ;
(1) (C++11부터)
(C++26부터 constexpr)
iterator erase_after ( const_iterator first, const_iterator last ) ;
(2) (C++11부터)
(C++26부터 constexpr)

컨테이너에서 지정된 요소들을 제거합니다.

1) pos 다음에 오는 요소를 제거합니다.
만약 pos 다음의 반복자가 역참조 가능하지 않다면, 동작은 정의되지 않습니다.
2) ( first , last ) 범위의 요소들을 제거합니다.
범위 ( 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()); // 오류: erase() 함수 없음
    l.erase_after(l.before_begin()); // 첫 번째 요소 제거
    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

참고 항목

내용을 지움
(public member function)