list_erase

list_erase (std::list::erase — 원소 제거)

std::list에서 원하는 원소를 제거하는 멤버 함수예요. 위치로 하나를 지우거나, 범위로 지울 수 있어요.

출처: cppreference

본문

시그니처는 다음과 같아요.

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

지정한 원소를 컨테이너에서 제거해요.

(1) pos 위치의 원소를 제거해요.

(2) 범위 [first, last)의 원소들을 제거해요.

제거된 원소에 대한 참조와 이터레이터는 무효화돼요. 다른 참조와 이터레이터는 무효화되지 않아요.

매개변수

  • pos: 제거할 원소를 가리키는 이터레이터
  • first, last: 제거할 원소 범위를 정의하는 이터레이터 쌍

반환값

마지막으로 제거된 원소 다음을 가리키는 이터레이터.

복잡도

(1) 상수. (2) firstlast 사이 거리에 선형.

예제

#include <list>
#include <iostream>
int main()
{
    std::list<int> l{1, 2, 3, 4};
    auto it = l.begin();
    ++it;
    it = l.erase(it);          // {1, 3, 4}, it는 3을 가리킴
    for (int x : l) std::cout << x << ' ';
}

더 알아보기 (Learn more)

cppreference