std::flat_multiset<Key,Compare,KeyContainer>::insert
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), как если бы последовательно выполнялись следующие операции: - Добавляет элементы в
c, как если бы это выполнялось с помощьюc.insert(c.end(), first, last);. - Сортирует диапазон вновь вставленных элементов относительно
compare. - Объединяет полученный отсортированный диапазон и отсортированный диапазон ранее существовавших элементов в один отсортированный диапазон.
Во время этапа слияния на месте может выделяться память.
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) Линейная.
6) Линейная.
8) Линейная.
Пример
См. также
| создаёт элемент на месте (открытая функция-член) |
|
| создаёт элементы на месте, используя подсказку (открытая функция-член) |
|
создаёт std::insert_iterator типа, выводимого из аргумента (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/flat_multiset/insert