##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::set::emplace

From cppreference.com
< cpp‎ | container‎ | set

[edit template]

template< class... Args > std::pair<iterator,bool> emplace( Args&&... args ); |  | (since C++11)

Inserts a new element into the container by constructing it in-place with the given `args`.

Careful use of `emplace` allows the new element to be constructed while avoiding unnecessary copy or move operations. The constructor of the new element is called with exactly the same arguments as supplied to `emplace`, forwarded via std::forward<Args>(args)....

No iterators or references are invalidated.

### [edit] Parameters

args | - | arguments to forward to the constructor of the element

### [edit] Return value

Returns a pair consisting of a bool denoting whether the insertion took place and an iterator to the inserted element, or the already-existing element if no insertion happened.

### [edit] Exceptions

If an exception is thrown by any operation, this function has no effect.

### [edit] Complexity

Logarithmic in the size of the container.

### [edit] Example

| This section is incomplete Reason: no example

### [edit] See also

emplace_hint (C++11) | constructs elements in-place using a hint (public member function) [edit]
insert | inserts elements (public member function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/container/set/emplace&oldid=50647"
Category:

- Todo no example