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> // 用于映射操作

using namespace std;

int main(){  

    // 创建哈希映射。

    map< int, string > mp;

    // 在 Hashmap 中插入键值对。

    mp[1]="Tutorials";

    mp[2]="Tutorials";

    mp[3]="Point";

    int key = 2;

    // 创建迭代器。

    map<int, string>::iterator it ;

    // 打印初始 Hashmap。

    cout<< "HashMap before Deletion:\n";

    for (it = mp.begin(); it!=mp.end(); ++it)

        cout << it->first << "->" << it->second << endl;

    mp.erase(key);

    // 删除后打印Hashmap。

    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> // 用于映射操作

using namespace std;

int main(){  

    // 创建哈希映射。

    map< int, string > mp;

    // 在 Hashmap 中插入键值对。

    mp[1]="Tutorials";

    mp[2]="Tutorials";

    mp[3]="Point";

    int key = 2;

    // 创建迭代器。

    map<int, string>::iterator it ;

    // 打印初始 Hashmap。

    cout<< "HashMap before Deletion:\n";

    for (it = mp.begin(); it!=mp.end(); ++it)

        cout << it->first << "->" << it->second << endl;

        // 迭代 HashMap。

    for (it = mp.begin(); it!=mp.end(); ++it){

        int a=it->first;

        // 使用所需的密钥检查迭代器密钥。

        if(a==key){

            // 擦除元素。

            mp.erase(it);

        }

    }

    // 删除后打印Hashmap。

    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.We讨论的删除条目的两种方法中删除条目,这些方法是迭代它和不迭代它。我们还讨论了针对这个问题的 C++ 程序,我们可以使用 C、Java、Python 等编程语言来解决这个问题。我们希望本教程对您有所帮助。

以上是 C++ 在迭代时使用 HashMap 中的键删除条目 的全部内容, 来源链接: utcz.com/z/362279.html

回到顶部