flat_map::emplace

flat_map::emplace (제자리 생성 삽입)

키-값 쌍을 제자리 생성해 삽입하는 멤버 함수예요. 추가 복사/이동을 피할 수 있어요. <flat_map> 헤더, C++23부터.

출처: cppreference

본문

emplace는 주어진 인자로부터 키-값 쌍을 제자리 생성해 삽입해요.

template< class... Args >
std::pair<iterator, bool> emplace( Args&&... args );
  • 컨테이너에 해당 키가 없을 때만 새 요소를 삽입해요.
  • 반환 값 {iterator, bool}. 삽입 성공 시 bool = true, 키가 이미 있으면 false이고 iterator는 기존 요소를 가리켜요.
std::flat_map<std::string, int> m;
auto [it, ok] = m.emplace("apple", 3);
// ok == true
auto [it2, ok2] = m.emplace("apple", 5);   // 키 중복 → ok2 == false

정렬 위치를 유지하며 제자리 삽입하는 함수예요. flat_map은 벡터 기반이라 중간 삽입 시 요소를 밀며, 키가 이미 있으면 삽입하지 않아요.

더 알아보기 (Learn more)

cppreference