Przestrzenie nazw
Warianty
Działania

std::deque::emplace

Z cppreference.com
< cpp‎ | container‎ | deque
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.

Spis treści

[edytuj] 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 .

[edytuj] Zwracana wartość

Iterator pointing to the emplaced element.

[edytuj] Złożoność

Liniowa względem odległości między pos a bliższym z końców kontenera.

[edytuj] 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.

[edytuj] Zobacz także

wstawia elementy
(publiczna metoda) [edit]