unordered_map_erase

unordered_map_erase (std::unordered_map::erase — 원소 제거)

std::unordered_map에서 원하는 원소를 제거하는 멤버 함수예요. 위치로 지우거나, 키/값을 기준으로 지울 수 있어요.

출처: cppreference

본문

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

iterator erase( const_iterator pos );                    // (1) (since C++11)
iterator erase( iterator pos );                          // (until C++11)
iterator erase( const_iterator first, const_iterator last );   // (2) (since C++11)
size_type erase( const Key& key );                       // (3)

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

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

(3) key와 동등한 키를 가진 원소(있으면 하나)를 제거해요.

매개변수

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

반환값

  • (1,2) 마지막으로 제거된 원소 다음을 가리키는 이터레이터
  • (3) 제거된 원소의 개수 (0 또는 1)

복잡도

(1) 평균 상수. (2) 범위 크기에 선형. (3) 평균 상수.

예제

#include <iostream>
#include <unordered_map>
int main()
{
    std::unordered_map<int, char> m{{1, 'a'}, {2, 'b'}, {3, 'c'}};
    m.erase(2);
    for (auto& [k, v] : m) std::cout << k << ' ';   // 1 3 (순서 미보장)
}

더 알아보기 (Learn more)

cppreference