std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>::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 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) Вставляет
value в позицию, максимально близкую к позиции непосредственно перед pos. Эквивалентно return emplace_hint(pos, value);.
4) Вставляет
value в позицию, максимально близкую к позиции непосредственно перед pos. Эквивалентно 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 в *this в позицию, максимально близкую к позиции непосредственно перед pos. Эквивалентно 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) Гарантии безопасности при исключениях отсутствуют. (?)
Сложность
1-6) Линейная относительно
size().
8) Линейная относительно
size().Пример
См. также
| конструирует элемент на месте (открытая функция-член) |
|
| конструирует элементы на месте, используя подсказку (открытая функция-член) |
|
создает std::insert_iterator типа, определяемого по аргументу (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/flat_multimap/insert