multimap_extract

multimap_extract (std::multimap::extract — 노드 추출)

std::multimap에서 노드를 분리해 노드 핸들(node handle)로 반환하는 멤버 함수예요. 노드 핸들은 같은 비교자·할당자를 가진 다른 연관 컨테이너로 이식될 수 있어요.

출처: cppreference

본문

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

node_type extract( const_iterator position );   // (1) (since C++17)
node_type extract( const Key& k );              // (2) (since C++17)
template< class K >
node_type extract( K&& x );                     // (3) (since C++23)

(1) position이 가리키는 원소를 담고 있는 노드를 연결에서 떼어내고, 그것을 소유하는 node handle을 반환해요.

(2) 컨테이너에 k와 동등한 키를 가진 원소가 있으면 그 원소를 담고 있는 노드를 컨테이너에서 떼어내고 node handle을 반환해요.

(3) x동등 하게 비교되는 키를 가진 원소의 노드를 떼어내요. 이 오버로드는 한정 식별자 Compare::is_transparent가 유효하고 타입을 나타낼 때만 오버로드 해석에 참여해요.

매개변수

  • position: 추출할 유효한 이터레이터
  • k: 추출할 원소의 키
  • x: 키와 투명하게 비교할 수 있는 값

반환값

추출된 원소를 소유하는 node handle. 원소가 없으면 빈 node handle.

복잡도

(1) 분할 상환 상수. (2,3) log(size()).

더 알아보기 (Learn more)

cppreference