C++ 集合库 - 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 的 pair。

异常

如果抛出异常,容器不会发生任何更改。

时间复杂度

取决于容器大小。

示例

以下示例演示了 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
set.htm
广告