C++ set emplace()

30 Aug 2024 | 3 分钟阅读

C++ set emplace() 函数用于通过向容器中插入新元素来扩展 set 容器。元素直接构造(既不复制也不移动)。

元素的构造函数通过向此函数传递参数 args 来调用。

仅当键尚不存在时才进行插入。

语法

参数

args:用于构造要插入到 set 中的元素的参数。

返回值

emplace() 函数返回一个布尔对,指示是否发生插入,并返回一个指向新插入元素的迭代器。

复杂度

容器大小的对数。

迭代器有效性

无变化。

数据竞争

容器被修改。

在容器中迭代范围是不安全的,尽管并发访问现有元素是安全的。

异常安全

如果抛出异常,容器中没有变化。

示例 1

让我们看一个简单的例子来将元素插入到集合中

输出

Set contains following elements
a, b, c, d, e,

在上面的示例中,它只是将元素与给定的键值对插入到 set m 中。

示例 2

让我们看一个简单的示例,插入元素并检查重复的键

输出

  set modified, now contains 1 elements: (ten) 

Emplace failed, element with value "ten" already exists.
  The existing element is (ten)

在上面的示例中,元素被插入到 set 中,当您尝试使用相同的键 "ten" 时,它将显示错误消息,指出键 "ten" 已存在。

示例 3

让我们看一个简单的示例,查找插入元素的总和

输出

Sum of elements is: 30

示例 4

让我们看一个插入元素的简单示例

输出

Enter the number of family members: 3
Enter the name of each member: 
Bob
Robin
David

Total member of family is: 3
Details of family members: 

Name 
 ________________________
Bob 
David 
Robin

在上面的示例中,它只是根据用户的选择插入元素。