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()).