multimap_emplace
multimap_emplace (std::multimap::emplace — 제자리 구성 삽입)
std::multimap에 새 원소를 변환식으로 제자리(in-place) 구성해 삽입하는 멤버 함수예요. 중복 키를 허용하므로 항상 삽입돼요.
출처: cppreference
본문
시그니처는 다음과 같아요.
template< class... Args >
iterator emplace( Args&&... args ); // (since C++11)
주어진 args로 제자리 구성된 새 원소를 컨테이너에 삽입해요. 새 원소(std::pair<const Key, T>)의 생성자는 emplace에 전달된 것과 똑같은 인자로, std::forward<Args>(args)...로 전달해 호출돼요. emplace를 조심히 쓰면 불필요한 복사나 이동 연산을 피하면서 새 원소를 구성할 수 있어요.
매개변수
args: 원소(value_type)의 생성자에 전달할 인자들.
반환값
삽입된 원소를 가리키는 이터레이터.
복잡도
컨테이너 크기에 대해 로그(logarithmic)예요.
예제
#include <iostream>
#include <map>
int main()
{
std::multimap<int, char> m;
auto it1 = m.emplace(1, 'a');
auto it2 = m.emplace(1, 'b'); // 중복 키 허용
std::cout << m.count(1) << '\n'; // 2
}