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

C ++ Xóa một mục nhập sử dụng giá trị khỏi HashMap trong khi lặp lại trên đó

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 giá trị trong khi lặp lại nó, chẳng hạn

Input: HashMap: { 1: “ Mango ”,
2: “ Orange ”,
3: “ Banana ”,
4: “Apple ” }, value=”Banana”

Output: HashMap: { 1: “ Mango ”,
2: “ Orange ”,
4: “Apple ” }.

Explanation: The third key-value pair is removed using the value “banana”.

Input: HashMap: { 1: “Yellow”,
2: “White”,
3: “Green” }, value=”White”

Output: HashMap: { 1: “Yellow”,
3: “Green” }.

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

Trong C ++, Chúng ta có thể xóa phần tử bằng cách sử dụng hàm .erase (). Từ hàm delete (), chúng ta có thể xóa phần tử bằng cách sử dụng tên khóa hoặc sử dụng một trình lặp. Trong hướng dẫn này, chúng ta sẽ thảo luận về việc xóa các phần tử bằng 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 giá trị có bị xóa hay không và xóa mục nhập khi giá trị được khớp.

Ví dụ

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

Xóa phần tử trong khi lặp lại qua HashMap

#include<iostream>
#include<map> // for map operations
using namespace std;
int main(){  
    // Creating HashMap.
    map< int, string > fruits;
    // Inserting key-value pair in Hashmap.
    fruits[1]="Mango";
    fruits[2]="Orange";
    fruits[3]="Banana";
    fruits[4]="Apple";
    string value = "Banana";
    // Creating iterator.
    map<int, string>::iterator it ;
    // Printing the initial 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;
        // Checking iterator value with required value.
        if(temp.compare(value) == 0){
            // erasing Element.
            fruits.erase(it);

        }
    }
    // Printing Hashmap after deletion.
    cout<< "HashMap After Deletion:\n";
    for (it = fruits.begin(); it!=fruits.end(); ++it)
        cout << it->first << "->" << it->second << endl;
    return 0;
}

Đầu ra

HashMap before Deletion:
1->Mango
2->Orange
3->Banana
4->Apple

HashMap After Deletion:
1->Mango
2->Orange
4->Apple

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 bằng cách sử dụng giá trị. Chúng tôi đã thảo luận về cách xóa một mục nhập bằng cách 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.