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

มัลติแมป::emplace_hint() ใน C++ STL


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

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

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

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

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

ไวยากรณ์

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

พารามิเตอร์

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

  • ตำแหน่ง − นี่คืออาร์กิวเมนต์ประเภท iterator ที่ใช้ในการให้คำแนะนำตำแหน่ง

  • วาล − นี่คือองค์ประกอบที่เราต้องการแทรก

คืนค่า

ฟังก์ชันนี้จะส่งคืนตัววนซ้ำไปยังตำแหน่งที่องค์ประกอบถูกฝัง/แทรก

ป้อนข้อมูล

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(){
   //create the container
   multimap<int, int> mul;
   //insert using 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