Namespaces
Variants

std::flat_multiset<Key,Compare,KeyContainer>:: emplace

From cppreference.net

template < class ... Args >
iterator emplace ( Args && ... args ) ;
(начиная с C++23)
(constexpr начиная с C++26)

Вставляет новый элемент в контейнер, созданный на месте с заданными args .

First, initializes an object t of type value_type with std:: forward < Args > ( args ) ... , then inserts t as if by
auto it = ranges::upper_bound(c, t, compare);
c.insert(it, std::move(t));

Эта перегрузка участвует в разрешении перегрузки только если std:: is_constructible_v < value_type, Args... > равно true .

Если value_type не является EmplaceConstructible в flat_multiset из args , поведение не определено.

Содержание

Параметры

args - аргументы для передачи конструктору элемента

Возвращаемое значение

Итератор на вставленный элемент.

Исключения

Если по какой-либо причине возникает исключение, эта функция не оказывает никакого эффекта ( гарантия строгой безопасности исключений ).

Сложность

Логарифмическая от размера контейнера.

Примечания

Аккуратное использование emplace позволяет создавать новый элемент, избегая ненужных операций копирования или перемещения.

Пример

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

создаёт элементы на месте с использованием подсказки
(публичная функция-член)
вставляет элементы
(публичная функция-член)