std::forward_list<T,Allocator>:: erase_after
From cppreference.net
<
cpp
|
container
|
forward list
|
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) |