Namespaces
Variants

std::flat_multiset<Key,Compare,KeyContainer>:: insert

From cppreference.net
iterator insert ( const value_type & value )
(1) (C++23부터)
iterator insert ( value_type && value ) ;
(2) (C++23부터)
iterator insert ( const_iterator pos, const value_type & value ) ;
(3) (C++23부터)
iterator insert ( const_iterator pos, value_type && value ) ;
(4) (C++23부터)
template < class InputIt >
void insert ( InputIt first, InputIt last ) ;
(5) (C++23부터)
template < class InputIt >
void insert ( std:: sorted_equivalent_t , InputIt first, InputIt last ) ;
(6) (C++23부터)
void insert ( std:: initializer_list < key_type > ilist ) ;
(7) (C++23부터)
void insert ( std:: sorted_equivalent_t s, std:: initializer_list < key_type > ilist ) ;
(8) (C++23부터)

컨테이너에 요소를 삽입합니다. 남아있는 동등한 요소들의 순서는 유지됩니다.

1) 값을 삽입합니다. 컨테이너에 동등한 키를 가진 요소가 있는 경우, 해당 범위의 상한에 삽입합니다. 다음 코드와 동등합니다: return emplace ( value ) ; .
2) value 를 삽입합니다. 컨테이너에 동등한 키를 가진 요소가 있는 경우, 해당 범위의 상한에 삽입합니다. 다음 코드와 동등합니다: return emplace ( std :: move ( value ) ) ; .
3) pos 바로 앞 위치에 최대한 가깝게 value 를 삽입합니다. return emplace_hint ( pos, value ) ; 와 동일합니다.
4) value pos 바로 앞 위치에 최대한 가깝게 삽입합니다. return emplace_hint ( pos, std :: move ( value ) ) ; 와 동일합니다.
5) 범위 [ first , last ) 에서 요소들을 삽입하며, 다음과 같은 작업을 순차적으로 수행하는 것과 같습니다:
  1. c 에 다음과 같이 요소들을 추가합니다: c. insert ( c. end ( ) , first, last ) ;
  2. 새로 삽입된 요소들의 범위를 compare 를 기준으로 정렬합니다.
  3. 결과로 얻은 정렬된 범위와 기존 요소들의 정렬된 범위를 단일 정렬된 범위로 병합합니다.
제자리 병합 단계에서 메모리를 할당할 수 있습니다.
6) 범위의 요소들을 삽입합니다 [ first , last ) . 다음 코드와 동일합니다 insert ( first, last ) ; .
7) 초기화 리스트 ilist 에서 요소들을 삽입합니다. insert ( ilist. begin ( ) , ilist. end ( ) ) ; 와 동등합니다.
8) 초기화 목록에서 요소들을 삽입합니다 ilist . 다음 코드와 동일합니다 insert ( s, ilist. begin ( ) , ilist. end ( ) ) ; .

목차

매개변수

pos - 새 요소가 삽입될 위치 앞을 가리키는 반복자
value - 삽입할 요소 값
first, last - 삽입할 요소들의 소스 범위 를 정의하는 반복자 쌍
ilist - 값을 삽입할 초기화 리스트
s - 입력 시퀀스가 정렬되었음을 나타내는 구분 태그 ( key_compare 기준)
타입 요구사항
-
InputIt LegacyInputIterator 요구사항을 충족해야 함

반환값

1-4) 삽입된 요소에 대한 반복자.
5-8) (없음)

예외

1-4) 기본 컨테이너에 따라 다릅니다.
5-8) 예외 안전성 보장 없음.

복잡도

1-4) 선형.
5) N + M·log ( M ) , 여기서 N 은 연산 전의 size() 이고 M std:: distance ( first, last ) 입니다.
6) 선형.
7) N + M·log ( M ) , 여기서 N size() 연산 전의 크기이고 M ilist. size ( ) 입니다.
8) 선형.

예제

참고 항목

제자리에서 요소를 생성
(public member function)
힌트를 사용하여 제자리에서 요소들을 생성
(public member function)
인수로부터 추론된 타입의 std::insert_iterator 를 생성
(function template)