std::unordered_multiset<Key,Hash,KeyEqual,Allocator>:: insert
From ru.cppreference.net
<
cpp
|
container
|
unordered multiset
|
iterator insert
(
const
value_type
&
value
)
;
|
(1) | (начиная с C++11) |
|
iterator insert
(
value_type
&&
value
)
;
|
(2) | (начиная с C++11) |
|
iterator insert
(
const_iterator hint,
const
value_type
&
value
)
;
|
(3) | (начиная с C++11) |
|
iterator insert
(
const_iterator hint, value_type
&&
value
)
;
|
(4) | (начиная с C++11) |
|
template
<
class
InputIt
>
void insert ( InputIt first, InputIt last ) ; |
(5) | (начиная с C++11) |
|
void
insert
(
std::
initializer_list
<
value_type
>
ilist
)
;
|
(6) | (начиная с C++11) |
|
iterator insert
(
node_type
&&
nh
)
;
|
(7) | (начиная с C++17) |
|
iterator insert
(
const_iterator hint, node_type
&&
nh
)
;
|
(8) | (начиная с C++17) |
Вставляет элемент(ы) в контейнер.
1,2)
Вставляет
value
.
3,4)
Вставляет
value
, используя
hint
в качестве необязательной подсказки о том, с какого места следует начать поиск.
5)
Вставляет элементы из диапазона
[
first
,
last
)
.
6)
Вставляет элементы из списка инициализации
ilist
.
7)
Если
nh
является пустым
node handle
, ничего не делает. В противном случае вставляет элемент, принадлежащий
nh
, в контейнер и возвращает итератор, указывающий на вставленный элемент. Поведение не определено, если
nh
не пуст и
get_allocator
(
)
!
=
nh.
get_allocator
(
)
.
8)
Если
nh
является пустым
node handle
, не выполняет никаких действий и возвращает конечный итератор. В противном случае вставляет элемент, принадлежащий
nh
, в контейнер и возвращает итератор, указывающий на элемент с ключом, эквивалентным
nh.
key
(
)
.
hint
используется как необязательная подсказка о том, с чего следует начать поиск. Поведение не определено, если
nh
не пуст и
get_allocator
(
)
!
=
nh.
get_allocator
(
)
.
Если после операции новое количество элементов становится больше старого
max_load_factor()
*
bucket_count()
происходит рехэширование.
Если происходит рехэширование (из-за вставки), все итераторы становятся недействительными. В противном случае (без рехэширования) итераторы остаются действительными.
Если вставка успешна, указатели и ссылки на элемент, полученные пока он находился в node handle, становятся недействительными, а указатели и ссылки, полученные до его извлечения, становятся действительными.
(since C++17)
Содержание |
Параметры
| hint | - | итератор, используемый как подсказка о том, куда вставлять содержимое |
| value | - | значение элемента для вставки |
| first, last | - | пара итераторов, определяющая исходный диапазон элементов для вставки |
| ilist | - | список инициализации, из которого берутся значения для вставки |
| nh | - | совместимый node handle |
| Требования к типам | ||
-
InputIt
должен удовлетворять требованиям
LegacyInputIterator
.
|
||
Возвращаемое значение
1-4)
Итератор на вставленный элемент.
5,6)
(нет)
7,8)
Конечный итератор, если
nh
был пустым, итератор указывающий на вставленный элемент в противном случае.
Исключения
1-4)
Если при выполнении любой операции возникает исключение, вставка не производится.
|
Этот раздел не завершён
Причина: случаи 5,6 |
Сложность
1-4)
В среднем случае:
O(1)
, в худшем случае
O(size())
.
5,6)
Средний случай:
O(N)
, где N - количество вставляемых элементов. Худший случай:
O(N * size() + N)
.
7,8)
Средний случай:
O(1)
, худший случай
O(size())
.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
создаёт элемент на месте
(публичная функция-член) |
|
|
создаёт элементы на месте с использованием подсказки
(публичная функция-член) |
|
|
создаёт
std::insert_iterator
типа, выведенного из аргумента
(шаблон функции) |