Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การแทรกหลายแมป () ใน C ++ STL


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน multimap::insert() ใน C++ STL

มัลติแมปใน C++ STL คืออะไร

Multimaps เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งคล้ายกับคอนเทนเนอร์แผนที่ นอกจากนี้ยังอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดขึ้นจากการรวมกันของคีย์-ค่าและค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แบบหลายแผนที่ อาจมีองค์ประกอบหลายรายการที่เกี่ยวข้องกับคีย์เดียวกัน ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง

multimap::insert() คืออะไร

ฟังก์ชัน multimap::insert() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว insert() ใช้เพื่อแทรกค่าใหม่ไปยังคอนเทนเนอร์ multimap และเพิ่มขนาดของคอนเทนเนอร์ตามจำนวนองค์ประกอบที่แทรก

ต่างจากคอนเทนเนอร์แผนที่ที่ตรวจสอบคีย์ที่เกี่ยวข้องที่มีอยู่แล้ว จะไม่แทรกองค์ประกอบ แต่ 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);

พารามิเตอร์

ฟังก์ชันนี้ยอมรับพารามิเตอร์ต่อไปนี้ -

  • เค − นี่คือคีย์ที่เกี่ยวข้องกับองค์ประกอบ ฟังก์ชันจะตรวจสอบว่าคีย์อยู่ในคอนเทนเนอร์แล้วหรือไม่ จากนั้นจะไม่แทรกองค์ประกอบ

  • วาล − ค่าที่จะใส่เข้าไป

  • มัน − ประเภทตัววนซ้ำของค่าที่ใช้กำหนดตำแหน่งที่เราต้องการให้องค์ประกอบถูกแทรก

  • ตำแหน่งที่ 1 ตำแหน่งที่ 2 − ตำแหน่งที่ 1 คือตำแหน่งเริ่มต้น และตำแหน่งที่ 2 คือตำแหน่งสิ้นสุดเมื่อเราต้องการแทรกชุดขององค์ประกอบ เราสามารถใช้ช่วงขององค์ประกอบต่างๆ ที่เราต้องการแทรกได้

  • อิล − นี่คือรายการตัวเริ่มต้นที่มีองค์ประกอบที่เราต้องการที่จะเริ่มต้นให้กับคอนเทนเนอร์

คืนค่า

ฟังก์ชันนี้ส่งคืนตัววนซ้ำไปยังองค์ประกอบที่เพิ่งแทรกในคอนเทนเนอร์แผนที่

ป้อนข้อมูล

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