C++ 在迭代 HashMap 时使用值删除条目
c++server side programmingprogramming
讨论如何在迭代 HashMap 时使用值删除条目,例如
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” }.
寻找解决方案的方法
在 C++ 中,我们可以使用 .erase() 函数删除元素。在 eras() 函数中,我们可以使用键名或迭代器删除元素。在本教程中,我们将讨论使用迭代器删除元素。
在这里,我们将遍历哈希图并检查是否删除了每个值,并在值匹配时删除条目。
示例
上述方法的 C++ 代码
在遍历 HashMap 时删除元素
#include<iostream> #include<map> // 用于映射操作 using namespace std; int main(){ // 创建 HashMap。 map< int, string > fruit; // 在 Hashmap 中插入键值对。 fruit[1]="Mango"; fruit[2]="Orange"; fruit[3]="Banana"; fruit[4]="Apple"; string value = "Banana"; // 创建迭代器。 map<int, string>::iterator it ; // 打印初始 Hashmap。 cout<< "删除前的HashMap:\n"; for (it = fruit.begin(); it!=fruits.end(); ++it) cout << it->first << "->" < < it->second << endl; for (it = fruit.begin(); it!=fruits.end(); ++it){ string temp = it->second; // 检查迭代器值是否具有所需值。 if(temp.compare(value) == 0){ // 删除元素。 fruit.erase(it); } } // 删除后打印 Hashmap。 cout<< "HashMap After Deletion:\n"; for (it = fruits.begin(); it!=fruits.end(); ++it) cout << it->first << "->" << it->second << endl; return 0; }
输出
HashMap before Deletion: 1->Mango 2->Orange 3->Banana 4->Apple HashMap After Deletion: 1->Mango 2->Orange 4->Apple
结论
在本教程中,我们讨论了如何使用值从 HashMap 中删除条目。我们讨论了通过迭代来删除条目的方法。我们还讨论了这个问题的 C++ 程序,我们可以使用 C、Java、Python 等编程语言来完成。我们希望您觉得本教程有用。