Namespaces
Variants

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

From ko.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)