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

C ++ ลบรายการโดยใช้คีย์จาก HashMap ในขณะที่วนซ้ำไปมา


บทช่วยสอนนี้จะกล่าวถึงวิธีลบรายการออกจาก HashMap โดยใช้คีย์ขณะสำรวจผ่าน ตัวอย่างเช่น

Input: HashMap: { 1: “Tutorials”,
                  2: “Tutorials”,
                  3: “Point” }, key=1

Output: HashMap: { 2: “Tutorials”,
                   3: “Point” }.

Explanation: The first element is removed using key ‘1’.

Input: HashMap: { 1: “God”,
                  2: “is”,
                  3: “Great” }, key=2

Output: HashMap: { 1: “God”,
                   3: “Great” }.

แนวทางในการหาแนวทางแก้ไข

ใน C ++ เราสามารถใช้ชื่อคีย์ในฟังก์ชัน .erase() เพื่อลบรายการโดยใช้คีย์ แต่ในที่นี้ เราจำเป็นต้องเอามันออกในขณะที่วนซ้ำ เราจึงจำเป็นต้องมีตัววนซ้ำด้วย

ที่นี่เราจะทำซ้ำผ่าน hashmap และตรวจสอบว่าทุกคีย์ถูกลบและลบรายการเมื่อคีย์ตรงกันหรือไม่

ตัวอย่าง

รหัส C++ สำหรับแนวทางข้างต้น

ไม่มีการทำซ้ำ

ด้านล่างนี้คือโค้ดสำหรับลบองค์ประกอบโดยไม่ต้องวนซ้ำ HashMap

#include<iostream>
#include<map> // for map operations
using namespace std;
int main(){  
    // Creating HashMap.
    map< int, string > mp;
    // Inserting key-value pair in Hashmap.
    mp[1]="Tutorials";
    mp[2]="Tutorials";
    mp[3]="Point";
    int key = 2;
    // Creating iterator.
    map<int, string>::iterator it ;
    // Printing the initial Hashmap.
    cout<< "HashMap before Deletion:\n";
    for (it = mp.begin(); it!=mp.end(); ++it)
        cout << it->first << "->" << it->second << endl;
    mp.erase(key);
    // Printing Hashmap after deletion.
    cout<< "HashMap After Deletion:\n";
    for (it = mp.begin(); it!=mp.end(); ++it)
        cout << it->first << "->" << it->second << endl;
    return 0;
}

ผลลัพธ์

HashMap before Deletion:
1->Tutorials
2->Tutorials
3->Point

HashMap After Deletion:
1->Tutorials
3->Point

ตัวอย่าง

ลบองค์ประกอบขณะวนซ้ำบน HashMap

#include<iostream>
#include<map> // for map operations
using namespace std;
int main(){  
    // Creating HashMap.
    map< int, string > mp;
    // Inserting key-value pair in Hashmap.
    mp[1]="Tutorials";
    mp[2]="Tutorials";
    mp[3]="Point";
    int key = 2;
    // Creating iterator.
    map<int, string>::iterator it ;
    // Printing the initial Hashmap.
    cout<< "HashMap before Deletion:\n";
    for (it = mp.begin(); it!=mp.end(); ++it)
        cout << it->first << "->" << it->second << endl;
        // Iterating over HashMap.
    for (it = mp.begin(); it!=mp.end(); ++it){
        int a=it->first;
        // Checking iterator key with required key.
        if(a==key){
            // erasing Element.
            mp.erase(it);
        }
    }
    // Printing Hashmap after deletion.
    cout<< "HashMap After Deletion:\n";
    for (it = mp.begin(); it!=mp.end(); ++it)
        cout << it->first << "->" << it->second << endl;
    return 0;
}

ผลลัพธ์

HashMap before Deletion:
1->Tutorials
2->Tutorials
3->Point

HashMap After Deletion:
1->Tutorials
3->Point

บทสรุป

ในบทช่วยสอนนี้ เราได้พูดถึงวิธีลบรายการออกจาก HashMap เราได้พูดถึงสองวิธีในการลบรายการที่มีการวนซ้ำและไม่มีการวนซ้ำ เรายังพูดถึงโปรแกรม C++ สำหรับปัญหานี้ ซึ่งเราสามารถทำได้ด้วยภาษาโปรแกรม เช่น C, Java, Python เป็นต้น เราหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์