std::flat_set<Key,Compare,KeyContainer>:: emplace
|
template
<
class
...
Args
>
std:: pair < iterator, bool > 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_set
из
args
, поведение не определено.
| Информация о недействительности итераторов скопирована отсюда |
Содержание |
Параметры
| args | - | аргументы для передачи конструктору элемента |
Возвращаемое значение
Пара, состоящая из итератора на вставленный элемент (или на элемент, который предотвратил вставку) и значения bool установленного в true тогда и только тогда, когда вставка произошла.
Исключения
Если по какой-либо причине возникает исключение, эта функция не оказывает никакого эффекта ( гарантия строгой безопасности исключений ).
Сложность
Логарифмическая от размера контейнера.
Примечания
Тщательное использование
emplace
позволяет создавать новый элемент, избегая ненужных операций копирования или перемещения.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
создаёт элементы на месте с использованием подсказки
(публичная функция-член) |
|
|
вставляет элементы
(публичная функция-член) |