std::deque<T,Allocator>:: erase
| (1) | ||
|
iterator erase
(
iterator pos
)
;
|
(C++11 이전) | |
|
iterator erase
(
const_iterator pos
)
;
|
(C++11 이후)
(constexpr C++26 이후) |
|
| (2) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(C++11 이전) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(C++11 이후)
(constexpr C++26 이후) |
|
컨테이너에서 지정된 요소들을 삭제합니다.
[
first
,
last
)
에 있는 요소들을 제거합니다.
모든 반복자와 참조는 무효화됩니다. 단, 삭제된 요소들이 컨테이너의 끝이나 시작 부분에 있는 경우에는 삭제된 요소들에 대한 반복자와 참조만 무효화됩니다.
end()
반복자도 무효화됩니다. 단, 삭제된 요소들이 컨테이너의 시작 부분에 있고 마지막 요소가 삭제되지 않은 경우는 예외입니다.
반복자 pos 는 유효하고 역참조 가능해야 합니다. 따라서 end() 반복자(유효하지만 역참조 불가능)는 pos 의 값으로 사용할 수 없습니다.
반복자 first 는 역참조 가능할 필요가 없습니다, 만약 first == last 인 경우: 빈 범위를 삭제하는 것은 no-op입니다.
목차매개변수
반환값제거된 마지막 요소 다음의 반복자.
만약
[
first
,
last
)
범위가 비어 있다면,
last
가 반환됩니다.
예외
복잡도
선형:
참고컨테이너 요소가 조건자(predicate)에 기반하여 제거되어야 할 때, 컨테이너를 반복하면서 단항 예제
이 코드 실행
#include <deque> #include <iostream> void print_container(const std::deque<int>& c) { for (int i : c) std::cout << i << ' '; std::cout << '\n'; } int main() { std::deque<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; print_container(c); c.erase(c.begin()); print_container(c); c.erase(c.begin() + 2, c.begin() + 5); print_container(c); // 모든 짝수 삭제 for (std::deque<int>::iterator it = c.begin(); it != c.end();) { if (*it % 2 == 0) it = c.erase(it); else ++it; } print_container(c); } 출력: 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 6 7 8 9 1 7 9 결함 보고서다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
참고 항목
| ||||||||||||||||||||||||||||