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

map emplace() ใน C ++ STL


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

แผนที่ใน C++ STL คืออะไร

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

map::emplace() คืออะไร

map::emplace( ) เป็นฟังก์ชันที่อยู่ภายใต้ไฟล์ส่วนหัว ฟังก์ชันนี้สร้างและแทรกองค์ประกอบลงในคอนเทนเนอร์แผนที่ที่เกี่ยวข้อง

emplace() แทรกองค์ประกอบใหม่หากคีย์ขององค์ประกอบที่จะฝังนั้นไม่ซ้ำกัน การแทรกจะเกิดขึ้นก็ต่อเมื่อไม่มีองค์ประกอบที่มีคีย์เดียวกันกับค่าที่จะแทรก ฟังก์ชันนี้ทำงานเหมือนกับ insert() ซึ่งคัดลอกและย้ายวัตถุที่มีอยู่ไปยังคอนเทนเนอร์

หากใส่องค์ประกอบสำเร็จ ขนาดของคอนเทนเนอร์จะเพิ่มขึ้น 1

ไวยากรณ์

map_name.emplace(Args&& args);

พารามิเตอร์

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

อาร์กิวเมนต์ − อาร์กิวเมนต์หรือค่าที่เราต้องการให้วางหรือแทรก

คืนค่า

หากการแทรกสำเร็จ ฟังก์ชันจะส่งกลับตัววนซ้ำที่ชี้ไปที่องค์ประกอบใหม่ซึ่งถูกแทรก มิฉะนั้นจะคืนค่า iterator เป็นค่าที่เทียบเท่าซึ่งมีอยู่ในคอนเทนเนอร์แล้ว

อินพุต

map<char, int> newmap;
emplace( ‘a’, 1);

ผลลัพธ์

a

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.emplace(4, 50);
   TP_Map.emplace(2, 30);
   TP_Map.emplace(1, 10);
   TP_Map.emplace(1, 20);
   TP_Map.emplace(1, 30);
   cout<<"TP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++)
      cout << i->first << "\t" << i->second << endl;
   return 0;
}

ผลลัพธ์

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
4             50