std::list::emplace
From cppreference.com
                    
                                        
                    
                    
                                                            
                    
|   template< class... Args >  
iterator emplace( const_iterator pos, Args&&... args );  | 
(since C++11) | |
Inserts a new element into the container directly before pos. The element is constructed through std::allocator_traits::construct, which typically uses placement-new to construct the element in-place at a location provided by the container. The arguments args... are forwarded to the constructor as std::forward<Args>(args)....
No iterators or references are invalidated.
Contents | 
[edit] Parameters
| pos | - | iterator before which the new element will be constructed | 
| args | - | arguments to forward to the constructor of the element | 
| Type requirements | ||
 -
T (the container's element type) must meet the requirements of EmplaceConstructible.
 | 
||
[edit] Return value
Iterator pointing to the emplaced element.
[edit] Complexity
Constant.
[edit] Exceptions
If an exception is thrown (e.g. by the constructor), the container is left unmodified, as if this function was never called (strong exception guarantee).
[edit] See also
|    inserts elements   (public member function)  |