এই টিউটোরিয়ালে, আমরা আলোচনা করব কী (key) ব্যবহার করে হ্যাশম্যাপ (HashMap) থেকে একটি এন্ট্রি (entry) কীভাবে রিমুভ করতে হয় যখন আমরা সেটির ওপর ট্রাভার্স (traverse) করছি। উদাহরণস্বরূপ,
Input: HashMap: { 1: "Tutorials", 2: "Tutorials", 3: "Point" }, key=1 Output: HashMap: { 2: "Tutorials", 3: "Point" }. Explanation: প্রথম এলিমেন্টটি '1' কী ব্যবহার করে রিমুভ করা হয়েছে। Input: HashMap: { 1: "God", 2: "is", 3: "Great" }, key=2 Output: HashMap: { 1: "God", 3: "Great" }.
সমাধানের পদ্ধতি
C++-এ, আমরা .erase() ফাংশনে কী নেম (key name) ব্যবহার করে কী দিয়ে এন্ট্রি রিমুভ করতে পারি। কিন্তু এখানে, আমাদের ইটারেট করার সময় রিমুভ করতে হবে, তাই আমাদের একটি ইটারেটর (iterator)ও দরকার।
এখানে আমরা হ্যাশম্যাপের মাধ্যমে ইটারেট করব এবং চেক করব প্রতিটি কী রিমুভ করা উচিত কিনা এবং কী ম্যাচ হলে এন্ট্রি রিমুভ করব।
উদাহরণ
উপরোক্ত পদ্ধতির জন্য C++ কোড
ইটারেশন ছাড়া
নিচে হ্যাশম্যাপের ওপর ইটারেট না করে এলিমেন্ট রিমুভ করার কোড দেওয়া হলো।
#include<iostream> #include<map> // ম্যাপ অপারেশনের জন্য using namespace std; int main(){ // হ্যাশম্যাপ তৈরি। map< int, string > mp; // হ্যাশম্যাপে key-value pair ইনসার্ট করুন। mp[1]="Tutorials"; mp[2]="Tutorials"; mp[3]="Point"; int key = 2; // ইটারেটর তৈরি। map<int, string>::iterator it ; // প্রাথমিক হ্যাশম্যাপ প্রিন্ট করুন। cout<< "HashMap before Deletion:\n"; for (it = mp.begin(); it!=mp.end(); ++it) cout << it->first << "->" << it->second << endl; mp.erase(key); // ডিলিশন পরের হ্যাশম্যাপ প্রিন্ট করুন। 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
উদাহরণ
হ্যাশম্যাপের ওপর ইটারেট করার সময় এলিমেন্ট রিমুভ করুন
#include<iostream> #include<map> // ম্যাপ অপারেশনের জন্য using namespace std; int main(){ // হ্যাশম্যাপ তৈরি। map< int, string > mp; // হ্যাশম্যাপে key-value pair ইনসার্ট করুন। mp[1]="Tutorials"; mp[2]="Tutorials"; mp[3]="Point"; int key = 2; // ইটারেটর তৈরি। map<int, string>::iterator it ; // প্রাথমিক হ্যাশম্যাপ প্রিন্ট করুন। cout<< "HashMap before Deletion:\n"; for (it = mp.begin(); it!=mp.end(); ++it) cout << it->first << "->" << it->second << endl; // হ্যাশম্যাপের ওপর ইটারেট করুন। for (it = mp.begin(); it!=mp.end(); ++it){ int a=it->first; // ইটারেটর কী রিকোয়ার্ড কী দিয়ে চেক করুন। if(a==key){ // এলিমেন্ট ইরেজ করুন। mp.erase(it); } } // ডিলিশন পরের হ্যাশম্যাপ প্রিন্ট করুন। 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 থেকে একটি এন্ট্রি কীভাবে রিমুভ করতে হয় তা আলোচনা করেছি। আমরা এন্ট্রি রিমুভ করার দুটি পদ্ধতি আলোচনা করেছি: ইটারেট করে এবং ইটারেট না করে। আমরা এই সমস্যার জন্য C++ প্রোগ্রামও আলোচনা করেছি যা আমরা C, Java, Python ইত্যাদি প্রোগ্রামিং ভাষায়ও করতে পারি। আশা করি আপনি এই টিউটোরিয়ালটিকে উপকারী পাবেন।