multimap_insert
multimap_insert (std::multimap::insert — 원소 삽입)
std::multimap에 원소를 삽입하는 멤버 함수예요. 값/이동 값, 힌트 위치, 범위, 초기화 목록 방식으로 삽입할 수 있어요. 중복 키를 허용하므로 항상 삽입돼요.
출처: cppreference
본문
주요 시그니처는 다음과 같아요.
iterator insert( const value_type& value ); // (1)
iterator insert( value_type&& value ); // (2) (since C++17)
template< class P >
iterator insert( P&& value ); // (3) (since C++11)
iterator insert( const_iterator pos, const value_type& value ); // (4)
template< class P >
iterator insert( const_iterator pos, P&& value ); // (5) (since C++11)
iterator insert( const_iterator pos, value_type&& value ); // (6) (since C++17)
template< class InputIt >
void insert( InputIt first, InputIt last ); // (7)
void insert( std::initializer_list<value_type> ilist ); // (8) (since C++11)
- (1,2,3)
value를 삽입해요. 중복 키도 삽입돼요. - (4,5,6)
pos바로 앞에 최대한 가깝게 힌트 삽입해요. - (7) 범위
[first, last)의 원소들을 삽입해요. - (8) 초기화 목록
ilist의 원소들을 삽입해요.
반환값
단일 원소/힌트 오버로드는 삽입된 원소를 가리키는 이터레이터. 범위/초기화 목록은 void.
복잡도
N·log(size() + N). 여기서 N은 삽입할 원소 개수. 힌트 오버로드는 힌트가 적절하면 분할 상환 상수.
예제
#include <iostream>
#include <map>
int main()
{
std::multimap<int, char> m;
auto it = m.insert({1, 'a'});
m.insert({1, 'b'}); // 중복 키 허용
std::cout << m.count(1) << '\n'; // 2
}