C++ Unordered_set Library - emplace


Advertisements

Description

It inserts a new element in the unordered_set if its value is unique. This new element is constructed in place using args as the arguments for the element's constructor.

Declaration

Following is the declaration for std::unordered_set::emplace.

C++11

template <class... Args>
pair <iterator,bool> emplace ( Args&&... args );

Parameters

args − These arguments passed to the constructor.

Return value

It returns if the function successfully inserts the element (because no other element existed with the same value), the function returns a pair with an iterator to the newly inserted element and a value of true.

Exceptions

Exception is thrown if any element comparison object throws exception.

Please note that invalid arguments cause undefined behavior.

Time complexity

constant time.

Example

The following example shows the usage of std::unordered_set::emplace.

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myset;

   myset.emplace ("kittu");
   myset.emplace ("prasad");
   myset.emplace ("sairamkrishna");

   std::cout << "myset containing:";
   for (const std::string& x: myset) std::cout << " " << x;

   std::cout << std::endl;
   return 0;
}

Let us compile and run the above program, this will produce the following result −

myset containing: sairamkrishna prasad kittu
unordered_set.htm
Advertisements