C ++ STL中的multimap insert()

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

什么是C ++ STL中的Multimap?

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

什么是multimap::insert()?

multimap::insert()函数是C ++ STL中的内置函数,该函数在  header file. insert() is used to insert new values to the multimap container and increases the size of the container by the number of elements inserted.

与检查已存在的关联键的映射容器不同,该容器不会插入元素,但是多图具有将多个元素关联到同一键的功能。

因此,每当我们插入一个元素时,它都会根据其键进入其各自的位置。

语法

multiMap_name.insert({key& k, value_type& val});

要么

multiMap_name.insert(iterator& it, {key& k, value_type& val});

要么

multiMap_name.insert(iterator& position1, iterator& position2);

要么

multimap_name.insert(initializer_list <value_type> il);

参数

此函数接受以下参数-

  • k-这是与元素关联的键。该函数检查键是否已在容器中,然后不插入元素。

  • val-要插入的值。

  • -这是用来给我们想要要插入的元件的位置的值的迭代器类型。

  • position1,position2-当我们要插入一系列元素时,position1是开始位置,而position2是结束位置,我们可以使用要插入的多个元素的范围。

  • il-这是初始化列表,其中包含我们希望初始化到容器的元素。

返回值

此函数将迭代器返回到新插入到映射容器中的元素。

输入值 

mutlimap<int, char> mymap;
mymap.insert(1, ‘a’);
mymap.insert(2, ‘b’);

输出结果 

1: a
2: b

示例

//使用给定的键插入给定的位置

#include <bits/stdc++.h>
using namespace std;
int main(){
   multimap<int, int> mul;
   //inserting elements in multimap
   mul.insert({ 1, 10 });
   mul.insert({ 2, 20 });
   mul.insert({ 3, 30 });
   mul.insert({ 4, 40 });
   mul.insert({ 5, 50 });
   //displaying multimap elements
   cout << "Elements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto it = mul.begin(); it!= mul.end(); ++it){
      cout << it->first << '\t' << it->second << '\n';
   }
   return 0;
}

输出结果

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

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

示例

//inserting the element after the given key
#include <bits/stdc++.h>
using namespace std;
int main(){
   multimap<int, int> mul;
   //inserting elements in multimap
   mul.insert({ 1, 10 });
   mul.insert({ 2, 20 });
   mul.insert({ 3, 30 });
   mul.insert({ 5, 40 });
   mul.insert({ 6, 50 });
   //finding the element after which we will insert
   auto i = mul.find(3);
   mul.insert(i, { 4, 90 });
   // print the elements
   cout << "KEY\tELEMENT\n";
   for (auto itr = mul.begin(); itr!= mul.end(); ++itr){
      cout << itr->first << '\t' << itr->second << '\n';
   }
   return 0;
}

输出结果

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

KEY ELEMENT
1 10
2 20
3 30
4 90
5 40
6 50