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+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告