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> // 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; }
输出
HashMap before Deletion: 1->Tutorials 2->Tutorials 3->Point HashMap After Deletion: 1->Tutorials 3->Point
实例
遍历 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; }
输出
HashMap before Deletion: 1->Tutorials 2->Tutorials 3->Point HashMap After Deletion: 1->Tutorials 3->Point
结论
在本教程中,我们讨论了如何从 HashMap 中移除项。我们讨论了两种移除项的方法,即遍历 HashMap 和不遍历 HashMap。我们还讨论了这个问题的 C++ 程序,我们可以用 C、Java、Python 等编程语言编写该程序。我们希望本教程对你有所帮助。
广告