C++ multimap emplace() 函数

30 Aug 2024 | 3 分钟阅读

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

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

语法

参数

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

返回值

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

复杂度

容器大小的对数。

迭代器有效性

无变化。

数据竞争

容器被修改。

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

异常安全

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

示例 1

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

输出

Multimap contains following elements
a = 1
b = 2
b = 4
c = 3
c = 5

在上面的例子中,它只是将元素以给定的键值对插入到 multimap m 中。

示例 2

让我们看一个简单的例子来插入元素并检查 multimap 是否允许重复键。

输出

multimap modified, now contains 3 elements: 
(Amita,Accounting) (Deep,Engineering) (Nikita,Accounting) 

multimap modified, now contains 4 elements: 
(Amita,Accounting) (Deep,Engineering) (Nikita,Accounting) (Nikita,Engineering)

在上面的例子中,元素被插入到 multimap 中,当你尝试添加相同的键 Nikita 时,它将允许你插入重复项。

示例 3

让我们看一个简单的例子,通过分别向键和值传递构造函数参数来将元素插入到 multimap 中。

输出

a => a
a => aaa
b => abcd
c => cccccccccc

在上面的例子中,通过分别向键和值传递构造函数参数来将元素插入到 multimap 中。

示例 4

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

输出

Enter the number of fmly members : 3
Enter the name and age of each member: 
Ram 42
Sita 37
Laxman 40

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

Name    |  Age 
__________________________
Laxman | 40 
Ram      | 42 
Sita       | 37

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

下一个主题C++ multimap