C++ STL 中的 multimap insert()


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

什么是 C++ STL 中的 Multimap?

Multimap 是关联容器,类似于 map 容器。它还便于以特定顺序存储由键值和映射值组合形成的元素。在 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.

与检查关联键是否已存在然后不会插入元素的 map 容器不同,multimap 具有将多个元素与同一个键关联的功能。

因此,无论何时插入元素,它都会根据其键转到其相应的位置。

语法

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 - 要插入的值。

  • it - 值的迭代器类型,用于给出希望插入元素的位置。

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

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

返回值

此函数返回指向 map 容器中新插入元素的迭代器。

输入

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

更新时间: 2020-04-22

1K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.