std::deque::emplace
template< class... Args > iterator emplace( const_iterator pos, Args&&... args ); |
(od C++11) | |
Wstawia nowy element do kontenera bezpośrednio przed pos. Element jest konstruowany poprzez std::allocator_traits::construct, które zazwyczaj używa placement-new do skonstruowania elementu "w miejscu"(ang), w lokalizacji zapewnionej przez kontener. Argumenty args... są przekazane do konstruktora jako std::forward<Args>(args)....
Wszystkie iteratory, wliczając iterator zakońcowy, zostają unieważnione. Referencje również zostają unie ważnione chyba, że pos == begin() lub pos == end(), w którym to przypadku pozostają prawidłowe.
Parametry
| pos | - | iterator przed którym zostanie skonstruowany nowy element |
| args | - | argumenty do przekazania do konstruktora elementu |
| Wymagania względem typów | ||
| -T (typ elementu kontenera) musi spełniać wymagania MoveAssignable, MoveInsertable i EmplaceConstructible . | ||
Zwracana wartość
Iterator pointing to the emplaced element.
Złożoność
Liniowa względem odległości między pos a bliższym z końców kontenera.
Wyjątki
Jeśli zostanie wyrzucony inny wyjątek niż przez {konstruktor kopiujący, konstruktor przenoszący, operator przypisania, operator przypisania przez przeniesienie} typu value, lub jeśli wyjątek jest wyrzucony podczas użycia emplace do wstawienia pojedynczego elementu na któryś z końców kontenera, zawartość kontenera nie zostanie zmodyfikowana (strong exception guarantee).
W przeciwnym razie działanie jest nieokreślone.
Zobacz także
| wstawia elementy (publiczna metoda) |