std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>:: insert
From cppreference.net
<
cpp
|
container
|
flat multimap
|
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
P
>
iterator insert ( P && x ) ; |
(5) | (C++23부터) |
|
template
<
class
P
>
iterator insert ( const_iterator pos, P && x ) ; |
(6) | (C++23부터) |
|
template
<
class
InputIt
>
void insert ( InputIt first, InputIt last ) ; |
(7) | (C++23부터) |
|
template
<
class
InputIt
>
void insert ( std:: sorted_equivalent_t , InputIt first, InputIt last ) ; |
(8) | (C++23부터) |
|
void
insert
(
std::
initializer_list
<
key_type
>
ilist
)
;
|
(9) | (C++23부터) |
|
void
insert
(
std::
sorted_equivalent_t
s,
std::
initializer_list
<
key_type
>
ilist
)
;
|
(10) | (C++23부터) |
컨테이너에 요소를 삽입합니다.
1)
value
를 삽입합니다.
return
emplace
(
value
)
;
와 동일합니다.
2)
value
를 삽입합니다.
return
emplace
(
std
::
move
(
value
)
)
;
와 동등합니다.
3)
pos
바로 앞 위치에 최대한 가깝게
value
를 삽입합니다.
return
emplace_hint
(
pos, value
)
;
와 동일합니다.
4)
pos
바로 앞 위치에 최대한 가깝게
value
를 삽입합니다.
return
emplace_hint
(
pos, std
::
move
(
value
)
)
;
와 동일합니다.
5)
x
를
*
this
에 다음과 같이 삽입합니다:
emplace
(
std::
forward
<
P
>
(
x
)
)
;
. 이 오버로드는
std::
is_constructible_v
<
pair
<
key_type, mapped_type
>
, P
>
가
true
인 경우에만 오버로드 해결에 참여합니다.
6)
x
를
pos
바로 이전 위치에 최대한 가깝게
*
this
에 삽입합니다.
return
emplace_hint
(
position,
std::
forward
<
P
>
(
x
)
)
;
와 동일합니다. 이 오버로드는
std::
is_constructible_v
<
pair
<
key_type, mapped_type
>
, P
>
가
true
인 경우에만 오버로드 해결에 참여합니다.
7)
범위
[
first
,
last
)
의 요소들을 다음과 같은 작업을 순차적으로 수행하는 것처럼 삽입합니다:
-
다음 작업처럼
c에 요소들을 추가합니다:
for ( ; first ! = last ; ++ first )
{
value_type value = * first ;
c. keys . insert ( c. keys . end ( ) , std :: move ( value. first ) ) ;
c. values . insert ( c. values . end ( ) , std :: move ( value. second ) ) ;
} -
새로 삽입된 요소들의 범위를
value_comp를 기준으로 정렬합니다. - 결과로 생성된 정렬된 범위와 기존 요소들의 정렬된 범위를 단일 정렬된 범위로 병합합니다.
제자리 병합 작업 중 메모리를 할당할 수 있습니다.
8)
범위
[
first
,
last
)
의 요소들을 다음과 같은 작업을 순차적으로 수행하는 것처럼 삽입합니다:
-
다음 작업을 통해
c에 요소들을 추가합니다:
for ( ; first ! = last ; ++ first )
{
value_type value = * first ;
c. keys . insert ( c. keys . end ( ) , std :: move ( value. first ) ) ;
c. values . insert ( c. values . end ( ) , std :: move ( value. second ) ) ;
} - 새로 추가된 요소들의 정렬된 범위와 기존 요소들의 정렬된 범위를 단일 정렬된 범위로 병합합니다.
제자리 병합 작업 중 메모리를 할당할 수 있습니다.
9)
초기화 목록으로부터 요소들을 삽입합니다
ilist
. 다음 코드와 동일합니다
insert
(
ilist.
begin
(
)
, ilist.
end
(
)
)
;
.
10)
초기화 리스트
ilist
에서 요소들을 삽입합니다.
insert
(
s, ilist.
begin
(
)
, ilist.
end
(
)
)
;
와 동등합니다.
| 반복자 무효화에 대한 정보는 여기 에서 복사되었습니다. |
목차 |
매개변수
| pos | - | 새 요소가 삽입될 위치 앞을 가리키는 반복자 |
| value | - | 삽입할 요소 값 |
| first, last | - | 삽입할 요소들의 소스 범위 를 정의하는 한 쌍의 반복자 |
| ilist | - | 값을 삽입할 초기화 리스트 |
| x | - | 키와 투명하게 비교될 수 있는 임의의 타입의 값 |
| s | - |
입력 시퀀스가 정렬되었음을 나타내는 구분 태그 (
value_comp()
기준)
|
| 타입 요구사항 | ||
-
InputIt
는
LegacyInputIterator
요구사항을 충족해야 함
|
||
반환값
1-6)
삽입된 요소에 대한 반복자.
7-10)
(없음)
예외
1-6)
어떤 연산에 의해 예외가 발생하면, 삽입은 아무런 효과를 가지지 않습니다.
7-10)
예외 안전성 보장 없음. (?)
|
이 섹션은 불완전합니다
이유: 7-10번 케이스를 다시 확인하십시오 |
복잡도
1-6)
size()
에 대해 선형 시간 복잡도를 가집니다.
8)
크기에 대해 선형적으로
size()
.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
제자리에서 요소를 생성합니다
(public member function) |
|
|
힌트를 사용하여 제자리에서 요소를 생성합니다
(public member function) |
|
|
인수에서 유추된 타입의
std::insert_iterator
를 생성합니다
(function template) |