set_emplace_hint

set_emplace_hint (std::set::emplace_hint — 힌트 제자리 삽입)

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

출처: cppreference

본문

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

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

새 원소를 hint 바로 앞의 위치에 최대한 가깝게 컨테이너에 삽입해요. 원소의 생성자는 함수에 전달된 것과 똑같은 인자로, std::forward<Args>(args)...로 전달해 호출돼요. 이미 같은 키가 있어 삽입되지 않으면, 그 키를 가진 원소의 이터레이터를 반환하고 새 원소는 파괴돼요.

매개변수

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

반환값

삽입된 원소를 가리키는 이터레이터. 이미 그 키가 있으면 기존 원소를 가리키는 이터레이터.

복잡도

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

더 알아보기 (Learn more)

cppreference