Computer >> Máy Tính >  >> Lập trình >> C ++

C ++ Xóa mục nhập bằng khóa khỏi HashMap trong khi lặp lại trên đó

Hướng dẫn này sẽ thảo luận về cách xóa một mục nhập khỏi HashMap bằng cách sử dụng khóa trong khi duyệt qua nó. ví dụ,

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” }.

Phương pháp tiếp cận để tìm giải pháp

Trong C ++, Chúng ta có thể sử dụng tên khóa trong hàm .erase () để xóa các mục nhập bằng khóa. Nhưng ở đây, chúng tôi cần xóa nó trong khi lặp lại, vì vậy chúng tôi cũng cần một trình lặp.

Ở đây, chúng tôi sẽ lặp lại bản đồ băm và kiểm tra xem mọi khóa có bị xóa hay không và xóa mục nhập khi khóa khớp nhau.

Ví dụ

Mã C ++ cho phương pháp tiếp cận trên

Không lặp lại

Dưới đây là mã để xóa các phần tử mà không cần lặp lại 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;
}

Đầu ra

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

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

Ví dụ

Xóa phần tử trong khi làm lại qua 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;
}

Đầu ra

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

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

Kết luận

Trong hướng dẫn này, chúng tôi đã thảo luận về Cách xóa một mục nhập khỏi HashMap. Chúng tôi đã thảo luận hai cách để xóa một mục nhập đang lặp lại nó và không lặp lại nó. Chúng tôi cũng đã thảo luận về chương trình C ++ cho vấn đề này mà chúng tôi có thể làm với các ngôn ngữ lập trình như C, Java, Python, v.v. Chúng tôi hy vọng bạn thấy hướng dẫn này hữu ích.