C ++ STL中的multimap :: emplace()

在本文中,我们将讨论C ++ STL中multimap::emplace()函数的工作,语法和示例。

什么是C ++ STL中的Multimap?

多图是关联容器,类似于图容器。它还有助于按特定顺序存储由键值和映射值的组合形成的元素。在多图容器中,可以有多个与同一键关联的元素。始终在内部借助关联的键对数据进行排序。

什么是multimap::emplace()?

multimap::emplace()函数是C ++ STL中的内置函数,在<map>头文件中定义。emplace()用于在多图容器中构造和插入新元素。此功能有效地将容器的大小增加了1。

此功能类似于插入功能,该功能复制或移动对象以将元素插入容器。

语法

multimap_name.emplace(Args& val);

参数

该函数接受以下参数-

  • val-这是我们要插入的元素。

返回值

此函数将迭代器返回到放置/插入元素的位置。

输入值 

std::multimap<char, int> odd, eve;
odd.insert({‘a’, 1});
odd.emplace({‘b’, 3});

输出结果 

Odd: a:1 b:3

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   //创建容器
   multimap<int, int> mul;
   //使用emplace插入
   mul.emplace(1, 10);
   mul.emplace(4, 20);
   mul.emplace(5, 30);
   mul.emplace(2, 40);
   mul.emplace(3, 50);
   mul.emplace(4, 60);
   cout << "\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.begin(); i!= mul.end(); i++){
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Elements in multimap is :
KEY ELEMENT
1 10
2 40
3 50
4 20
4 60
5 30