C++ 在遍历 HashMap 时使用键从 HashMap 中删除条目
c++server side programmingprogramming
本教程将讨论如何在遍历 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() 函数中使用键名来使用键删除条目。但在这里,我们需要在迭代它时删除它,所以我们也需要一个迭代器。
在这里,我们将迭代哈希图并检查是否每个键都已被删除,并在键匹配时删除条目。
示例
上述方法的 C++ 代码
无迭代
以下是用于在不迭代 HashMap 的情况下删除元素的代码。
#include<iostream> #include<map> // 用于映射操作 using namespace std; int main(){ // 创建 HashMap。 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:\n"; for (it = mp.begin(); it!=mp.end(); ++it) cout << it->first << "->" < it->second << endl; mp.erase(key); // 打印删除后的Hashmap。 cout<< "删除后的HashMap:\n"; for (it = mp.begin(); it!=mp.end(); ++it) cout << it->first << "->" << it->second << endl; return 0; }
输出
删除前的 HashMap: 1->教程 2->教程 3->Point 删除后的 HashMap: 1->教程 3->Point
示例
在 HashMap 上迭代时删除元素
#include<iostream> #include<map> // 用于映射操作 使用命名空间 std; int main(){ // 创建 HashMap。 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:\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: 1->Tutorials 2->Tutorials 3->Point 删除后的 HashMap: 1->Tutorials 3->Point
结论
在本教程中,我们讨论了如何从 HashMap 中删除条目。我们讨论了两种删除条目的方法,一种是迭代它,一种是不迭代它。我们还讨论了这个问题的 C++ 程序,我们可以使用 C、Java、Python 等编程语言来完成。我们希望本教程对您有所帮助。