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) Вставляет value . Если контейнер содержит элементы с эквивалентным ключом, вставляет в верхнюю границу этого диапазона. Эквивалентно return emplace ( value ) ; .
2) Вставляет value . Если контейнер содержит элементы с эквивалентным ключом, вставляет в верхнюю границу этого диапазона. Эквивалентно return emplace ( std :: move ( value ) ) ; .
3) Вставляет value в позицию, максимально близкую к позиции непосредственно перед pos . Эквивалентно 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) Линейный.

Пример

Смотрите также

создаёт элемент на месте
(публичная функция-член)
создаёт элементы на месте с использованием подсказки
(публичная функция-член)
создаёт std::insert_iterator типа, выведенного из аргумента
(шаблон функции)