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

C++ ลบ Entry จาก HashMap โดยใช้ Value ขณะ Iterate

อภิปรายวิธีการลบ 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 ฯลฯ เราหวังว่าบทช่วยสอนนี้จะเป็นประโยชน์