อภิปรายวิธีการลบ entry จาก HashMap โดยใช้ value ขณะกำลัง iterate ผ่านมัน ตัวอย่างเช่น:
Input: HashMap: { 1: "Mango", 2: "Orange", 3: "Banana", 4: "Apple" }, value="Banana"
Output: HashMap: { 1: "Mango", 2: "Orange", 4: "Apple" }
คำอธิบาย: คู่ key-value ที่สามถูกลบโดยใช้ value "banana"
Input: HashMap: { 1: "Yellow", 2: "White", 3: "Green" }, value="White"
Output: HashMap: { 1: "Yellow", 3: "Green" }
วิธีการหาคำตอบ
ใน C++ เราสามารถลบองค์ประกอบโดยใช้ฟังก์ชัน .erase() จากฟังก์ชัน erase() เราสามารถลบองค์ประกอบโดยใช้ชื่อ key หรือใช้ iterator ในบทช่วยสอนนี้ เราจะอภิปรายการลบองค์ประกอบโดยใช้ iterator
ที่นี่ เราจะ iterate ผ่าน hashmap และตรวจสอบว่าค่าใดค่าหนึ่งคือ value ที่ต้องการลบ และลบ entry เมื่อ value ตรงกัน
ตัวอย่าง
โค้ด C++ สำหรับวิธีข้างต้น
Remove Element while Iterating over HashMap
#include<iostream>
#include<map> // สำหรับ map operations
using namespace std;
int main(){
// สร้าง HashMap
map fruits;
// แทรก key-value pair ใน Hashmap
fruits[1]="Mango";
fruits[2]="Orange";
fruits[3]="Banana";
fruits[4]="Apple";
string value = "Banana";
// สร้าง iterator
map::iterator it;
// พิมพ์ Hashmap เริ่มต้น
cout << "HashMap before Deletion:\n";
for (it = fruits.begin(); it!=fruits.end(); ++it)
cout << it->first << "->" << it->second << endl;
for (it = fruits.begin(); it!=fruits.end(); ++it){
string temp = it->second;
// ตรวจสอบค่า iterator กับ value ที่ต้องการ
if(temp.compare(value) == 0){
// ลบ Element
fruits.erase(it);
}
}
// พิมพ์ Hashmap หลังการลบ
cout << "HashMap After Deletion:\n";
for (it = fruits.begin(); it!=fruits.end(); ++it)
cout << it->first << "->" << it->second << endl;
return 0;
}
ผลลัพธ์
HashMap before Deletion: 1->Mango 2->Orange 3->Banana 4->Apple HashMap After Deletion: 1->Mango 2->Orange 4->Apple
สรุป
ในบทช่วยสอนนี้ เราอภิปรายวิธีการลบ entry จาก HashMap โดยใช้ value เราอภิปรายวิธีการลบ entry โดยการ iterate ผ่านมัน เรายังอภิปรายโปรแกรม C++ สำหรับปัญหานี้ซึ่งเราสามารถทำได้กับภาษาโปรแกรมมิ่งอย่าง C, Java, Python ฯลฯ เราหวังว่าบทช่วยสอนนี้จะเป็นประโยชน์