C++ Set Library - emplace Function


Advertisements

Description

It inserts a new element in the set.

Declaration

Following are the ways in which std::set::emplace works in various C++ versions.

C++98

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

C++11

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

Return value

It returns a pair of an iterator to the newly inserted element and a value of true.

Exceptions

If an exception is thrown, there are no changes in the container.

Time complexity

Depends on container size.

Example

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

#include <iostream>
#include <set>
#include <string>

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

   myset.emplace("foo");
   myset.emplace("bar");
   auto ret = myset.emplace("bar");

   if (!ret.second) std::cout << "bar already exists in myset\n";

   return 0;
}

The above program will compile and execute properly.

bar already exists in myset
set.htm
Advertisements