C++ Set 库 - emplace 函数


描述

它在集合中插入一个新元素。

宣言

以下是 std::set::emplace 在各种 C++ 版本中的工作方式。

C++98

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

C++11

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

返回值

它返回一对指向新插入元素的迭代器和一个 true 值。

例外情况

如果抛出异常,则容器中不会发生任何变化。

时间复杂度

取决于容器尺寸。

例子

以下示例显示了 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;
}

上面的程序可以正确编译并执行。

bar already exists in myset
设置.htm