C++ Multiset emplace_hint()

30 Aug 2024 | 3 分钟阅读

C++ Multiset emplace_hint() 函数用于通过在容器中使用提示作为元素位置插入新元素来扩展多重集合容器。元素直接构建(既不复制也不移动)。

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

语法

参数

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

position:插入新元素的建议位置。

返回值

emplace_hint() 函数返回一个指向新插入元素的迭代器。如果元素已存在,则插入失败并返回指向现有元素的迭代器。

复杂度

如果未指定位置,则复杂度将为容器大小的对数。

如果指定了位置,则复杂度将为分摊常数。

迭代器有效性

无变化。

数据竞争

容器被修改。

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

异常安全

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

示例 1

让我们看一个将元素插入多重集合的简单示例

输出

Multiset contains following elements
10
20
20
30
30
40

在上面的示例中,它只是将元素以给定值插入到多重集合 m 的给定位置。

示例 2

让我们看一个简单的例子

输出

multiset starting data: 3 elements: 
Deep  Ram  Sunil  

multiset modified, now contains 4 elements: 
Deep  Deep  Ram  Sunil

示例 3

让我们看一个将元素插入到具有给定位置的多重集合的简单示例

输出

mymultiset contains: [a] [b] [b]

示例 4

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

输出

Enter the number of fmly members : 4
Enter the name of each member: 
Deep
Sonu
Ajeet
Bob

Total memnber of fmly is:4
Details of fmly members: 

Name 
 ________________________
 Ajeet 
 Bob 
 Deep 
 Sonu

在上面的示例中,它只是根据用户的选择将元素插入到多重集合的开头。

下一个主题C++ multiset