map_emplace_hint

map_emplace_hint (std::map::emplace_hint — 힌트 제자리 삽입)

std::map에 새 원소를 제자리 구성해 삽입하되, 힌트 위치 hint 바로 앞에 최대한 가깝게 넣는 멤버 함수예요. 힌트를 잘 주면 삽입 위치 탐색 비용을 줄일 수 있어요.

출처: cppreference

본문

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

template< class... Args >
iterator emplace_hint( const_iterator hint, Args&&... args );   // (since C++11)

새 원소를 hint 바로 앞의 위치에 최대한 가깝게 컨테이너에 삽입해요. 원소 타입(value_type, 즉 std::pair<const Key, T>)의 생성자는 함수에 전달된 것과 똑같은 인자로, std::forward<Args>(args)...로 전달해 호출돼요. 이터레이터나 참조는 무효화되지 않아요.

매개변수

  • hint: 새 원소가 삽입될 위치 바로 앞을 가리키는 이터레이터
  • args: 원소의 생성자에 전달할 인자들.

반환값

삽입된 원소를 가리키는 이터레이터. 이미 그 키가 있어서 삽입되지 않았다면 기존 원소를 가리키는 이터레이터.

복잡도

보통 삽입이라면 로그(logarithmic)이지만, 힌트가 삽입 위치 바로 직전을 가리키면 분할 상환 상수(amortized constant)예요.

더 알아보기 (Learn more)

cppreference