flat_multiset_emplace

flat_multiset_emplace (std::flat_multiset::emplace — 제자리 구성 삽입)

std::flat_multiset에 새 원소를 변환식으로 제자리(in-place) 구성해 삽입하는 멤버 함수예요. 주어진 인자 argsvalue_type 객체를 만들어 넣어요.

출처: cppreference

본문

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

template< class... Args >
iterator emplace( Args&&... args );   // (since C++23)

주어진 args로 제자리 구성된 새 원소를 컨테이너에 삽입해요.

먼저 std::forward<Args>(args)...value_type 타입의 객체 t를 초기화한 다음, 다음과 같이 t를 삽입해요.

auto it = ranges::upper_bound(c, t, compare);
c.insert(it, std::move(t));

이 오버로드는 std::is_constructible_v<value_type, Args...>true일 때만 오버로드 해석에 참여해요. emplace를 조심히 쓰면 불필요한 복사나 이동 연산을 피하면서 새 원소를 구성할 수 있어요.

매개변수

  • args: 원소의 생성자에 전달할 인자들.

반환값

삽입된 원소를 가리키는 이터레이터.

복잡도

내부 컨테이너 크기에 대해 로그(logarithmic)에다가 원소 복사/이동에 대한 비용이 추가돼요.

더 알아보기 (Learn more)

cppreference