Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ इसे इटरेट करते समय हैश मैप से कुंजी का उपयोग करके एक प्रविष्टि हटाएं

यह ट्यूटोरियल चर्चा करेगा कि कैसे हैश मैप से एक प्रविष्टि को हटाने के लिए कुंजी का उपयोग करके इसके माध्यम से जाना जाता है। उदाहरण के लिए,

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() फ़ंक्शन में कुंजी नाम का उपयोग कर सकते हैं। लेकिन यहां, हमें इस पर पुनरावृति करते हुए इसे हटाने की आवश्यकता है, इसलिए हमें एक पुनरावर्तक की भी आवश्यकता है।

यहां हम हैशमैप के माध्यम से पुनरावृति करेंगे और जांचेंगे कि क्या प्रत्येक कुंजी को हटा दिया गया है और जब कुंजी मेल खाती है तो प्रविष्टि को हटा दें।

उदाहरण

उपरोक्त दृष्टिकोण के लिए C++ कोड

पुनरावृत्ति के बिना

नीचे हैश मैप पर पुनरावृति किए बिना तत्वों को हटाने का कोड दिया गया है।

#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

उदाहरण

हैश मैप पर पुनरावृति करते हुए तत्व निकालें

#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

निष्कर्ष

इस ट्यूटोरियल में, हमने चर्चा की कि हाशप से एक प्रविष्टि को कैसे हटाया जाए। हमने एक प्रविष्टि को हटाने के दो तरीकों पर चर्चा की, जो उस पर पुनरावृति कर रहे हैं और उस पर पुनरावृति किए बिना। हमने इस समस्या के लिए C++ प्रोग्राम पर भी चर्चा की जिसे हम प्रोग्रामिंग भाषाओं जैसे C, Java, Python, आदि के साथ कर सकते हैं। हमें उम्मीद है कि आपको यह ट्यूटोरियल मददगार लगेगा।


  1. C++ का उपयोग करके लिंक की गई सूची के अंतिम नोड को हटा दें

    हमें एक एकल लिंक की गई सूची प्रदान की जाती है, और हमें उस सूची से अंतिम नोड को हटाने का काम सौंपा जाता है। इस समस्या में, हम केवल दी गई सूची को पार करने जा रहे हैं और बस अंतिम नोड को हटा दें। समाधान खोजने के लिए दृष्टिकोण को NULL के बगल में बदल देते हैं और वर्तमान नोड को हटा देते हैं। उदाहरण #inclu

  1. C++ का उपयोग करके किसी दिए गए शब्द को स्ट्रिंग से निकालें

    इस लेख में, हम किसी दिए गए शब्द को किसी दिए गए स्ट्रिंग से हटाने की समस्या को हल करेंगे। उदाहरण के लिए - Input : str = “remove a given word ”, word = “ remove ” Output : “ a given word ” Input : str = “ god is everywhere ”, word = “ is ” O

  1. सी ++ कतार का उपयोग करके बीएसटी में पथ को उलट दें

    एक बाइनरी सर्च ट्री को देखते हुए, और उदाहरण के लिए, हमें किसी विशेष कुंजी से इसके पथ को उलटने की आवश्यकता होती है। समाधान खोजने के लिए दृष्टिकोण इस दृष्टिकोण में, हम एक कतार बनाएंगे और सभी नोड्स को तब तक धकेलेंगे जब तक हमें रूट नहीं मिल जाता। उदाहरण   #include <bits/stdc++.h> using n