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

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

什么是C ++ STL中的Multimap?

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

什么是multimap::emplace_hint()?

emplace_hint()函数是C ++ STL中的内置函数,在<map>头文件中定义。该函数在位置中的多图容器中插入一个新元素。在emplace_hint()中,我们为元素传递一个位置,该位置充当提示。此功能类似于,emplace()区别在于我们提供了位置提示以插入值。此功能还将多集容器的大小增加1。

语法

multimap_name.emplace_hint(iterator pos, Args& val);

参数

该函数接受以下参数-

  • pos-这是参数的迭代器类型,用于提供位置提示。

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

返回值

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

输入项 

std::multimap<char, int> odd, eve;
odd.insert({‘a’, 1});
odd.insert({‘b’, 3});
odd.insert({‘c’, 5});
odd.emplace_hint(odd.end(), {‘d’, 7});

输出结果

Odd: a:1 b:3 c:5 d:7

示例

Code:
#include <bits/stdc++.h>
using namespace std;
int main(){
   //创建容器
   multimap<int, int> mul;
   //使用emplace插入
   mul.emplace_hint(mul.begin(), 1, 10);
   mul.emplace_hint(mul.begin(), 2, 20);
   mul.emplace_hint(mul.begin(), 3, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 4, 50);
   mul.emplace_hint(mul.begin(), 5, 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 40
1 10
2 20
3 30
4 50
5 60