ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน map::at() และ map::swap() ใน C++ STL
แผนที่ใน C++ STL คืออะไร
แผนที่เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดขึ้นจากการรวมกันของค่าคีย์และค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แผนที่ ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง ค่าในคอนเทนเนอร์แผนที่สามารถเข้าถึงได้โดยคีย์เฉพาะของมัน
แผนที่::at() คืออะไร
ฟังก์ชัน map::at() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
หากมีกรณีที่คีย์ไม่ตรงกับคีย์ใดๆ ของคอนเทนเนอร์แผนที่ ฟังก์ชันจะส่งข้อยกเว้น out_of_range
ไวยากรณ์
map_name.at(key& k);
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์หนึ่งตัว นั่นคือ
- k − นี่คือกุญแจสำคัญที่เราต้องการกล่าวถึง
คืนค่า
ฟังก์ชันนี้ส่งคืนการอ้างอิงไปยังค่าที่เกี่ยวข้องกับคีย์ k ที่เรากำลังมองหา
ตัวอย่าง
อินพุต
std::map<int> mymap; mymap.insert({‘a’, 10}); mymap.insert({‘b, 20}); mymap.insert({‘c, 30}); mymap.at(‘b’);
ผลลัพธ์
b:20
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main() { map<int, int> TP_1; map<int, int> TP_2; TP_1[1] = 10; TP_1[2] = 20; TP_1[3] = 30; TP_1[4] = 40; TP_2[5] = 50; TP_2[6] = 60; TP_2[7] = 70; cout<<"Elements at TP_1[1] = "<< TP_1.at(1) << endl; cout<<"Elements at TP_1[2] = "<< TP_1.at(2) << endl; cout<<"Elements at TP_1[3] = "<< TP_1.at(3) << endl; cout<<"\nElements at TP_2[7] = "<< TP_2.at(7) << endl; cout<<"Elements at TP_2[5] = "<< TP_2.at(5) << endl; return 0; }
ผลลัพธ์
Elements at TP_1[1] = 10 Elements at TP_1[2] = 20 Elements at TP_1[3] = 30 Elements at TP_1[7] = 70 Elements at TP_1[5] = 50
แผนที่::swap() คืออะไร
ฟังก์ชัน map::swap() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
เมื่อฟังก์ชันนี้ถูกเรียก จะใช้พารามิเตอร์ซึ่งเป็นคอนเทนเนอร์แผนที่อื่นและสลับเนื้อหากับคอนเทนเนอร์ที่เกี่ยวข้อง
ไวยากรณ์
map_name.swap(map& map_name2);
พารามิเตอร์
ฟังก์ชันยอมรับพารามิเตอร์หนึ่งตัว นั่นคือ
- map_name2 − นี่คือออบเจ็กต์ของคอนเทนเนอร์แผนที่อื่นที่มีข้อมูลที่เราต้องการสลับกับคอนเทนเนอร์แผนที่ที่เกี่ยวข้อง
คืนค่า
ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด
ตัวอย่าง
อินพุต
std::map<int> odd, eve; odd.insert({‘a’, 1}); odd.insert({‘b’, 3}); odd.insert({‘c’, 5}); eve.insert({‘d’, 2}); eve.insert({‘e’, 4}); eve.insert({‘f’, 6}); odd.swap(eve);
ผลลัพธ์
Odd: d: 2 e:4 f:6 Eve: a:1 b:3 c:5
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main() { map<int, int> TP_1; map<int, int> TP_2; TP_1[1] = 10; TP_1[2] = 20; TP_1[3] = 30; TP_1[4] = 40; TP_2[5] = 50; TP_2[6] = 60; TP_2[7] = 70; swap(TP_1, TP_2); cout<<"Elements of TP_1 after swap:\n"<< "\tKEY\tELEMENT\n"; for (auto i = TP_1.begin(); i!= TP_1.end(); i++) { cout << "\t" << i->first << "\t" << i->second << '\n'; } cout << "Elements of TP_2 after swap:\n"<< "\tKEY\tELEMENT\n"; for (auto i = TP_2.begin(); i!= TP_2.end(); i++) { cout << "\t" << i->first << "\t" << i->second << '\n'; } return 0; }
ผลลัพธ์
Elements of TP_1 after swap: KEY ELEMENT 5 50 6 60 7 70 Elements of TP_2 after swap: KEY ELEMENT 1 10 2 20 3 30 4 40