ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน 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