multiset_insert

multiset_insert (std::multiset::insert — 원소 삽입)

std::multiset에 원소를 삽입하는 멤버 함수예요. 값/이동 값, 힌트 위치, 범위, 초기화 목록, 노드 핸들 방식으로 삽입할 수 있어요. 중복 키를 허용하므로 항상 삽입돼요.

출처: cppreference

본문

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

iterator insert( const value_type& value );           // (1)
iterator insert( value_type&& value );                // (2) (since C++11)
iterator insert( const_iterator pos, const value_type& value );  // (3)
iterator insert( const_iterator pos, value_type&& value );       // (4) (since C++11)
template< class InputIt >
void insert( InputIt first, InputIt last );           // (5)
void insert( std::initializer_list<value_type> ilist );          // (6) (since C++11)
iterator insert( node_type&& nh );                    // (7) (since C++17)
iterator insert( const_iterator pos, node_type&& nh );           // (8) (since C++17)
  • (1,2) value를 삽입해요. 중복 키도 삽입돼요.
  • (3,4) pos 바로 앞에 최대한 가깝게 힌트 삽입해요.
  • (5) 범위 [first, last)의 원소들을 삽입해요.
  • (6) 초기화 목록 ilist의 원소들을 삽입해요.
  • (7,8) 노드 핸들 nh에서 노드를 삽입해요. 틀린 비교자를 가진 컨테이너에서 온 노드여도 허용돼요.

남아 있는 동등한 원소들의 순서는 보존돼요.

반환값

삽입된 원소를 가리키는 이터레이터. 범위/초기화 목록 오버로드는 void.

복잡도

로그(logarithmic)예요. 힌트 오버로드는 힌트가 적절하면 분할 상환 상수.

예제

#include <iostream>
#include <set>
int main()
{
    std::multiset<int> s;
    s.insert(1);
    s.insert(1);   // 중복 허용
    std::cout << s.count(1) << '\n';   // 2
}

더 알아보기 (Learn more)

cppreference