C++ Unordered_set 库 - emplace


描述

如果它的值是唯一的,它会在 unordered_set 中插入一个新元素。这个新元素是使用 args 作为元素构造函数的参数来构造的。

宣言

以下是 std::unordered_set::emplace 的声明。

C++11

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

参数

args - 这些参数传递给构造函数。

返回值

如果函数成功插入该元素(因为不存在具有相同值的其他元素),则该函数返回一对,其中包含新插入元素的迭代器和 true 值。

例外情况

如果任何元素比较对象抛出异常,则抛出异常。

请注意,无效参数会导致未定义的行为。

时间复杂度

恒定时间。

例子

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

让我们编译并运行上面的程序,这将产生以下结果 -

myset containing: sairamkrishna prasad kittu
无序集.htm