ধরুন আমাদের স্টুডেন্ট রোলের জন্য একটি ম্যাপ ডেটা স্ট্রাকচার আছে এবং রোলের নাম হল একটি পূর্ণসংখ্যা ডেটা এবং নাম হল স্ট্রিং টাইপ ডেটা। আমাদের স্ট্যান্ডার্ড ইনপুটে আমরা n প্রশ্ন প্রদান করি। প্রতিটি ক্যোয়ারীতে (প্রতিটি লাইনে) দুটি উপাদান থাকতে হবে এবং টাইপ 1 ক্যোয়ারীটির জন্য তিনটি উপাদান রয়েছে। প্রথমটি হল অপারেটর, দ্বিতীয়টি হল রোল এবং তৃতীয়টি হল নাম, দুটি উপাদানের প্রশ্নের জন্য দ্বিতীয় আইটেমটি হল রোল নম্বর৷ অপারেশনগুলো নিচের মত-
-
ঢোকান। এটি সংশ্লিষ্ট রোলে মানচিত্রে নামটি সন্নিবেশ করাবে
-
মুছে ফেলা. এটি মানচিত্র থেকে রোল নম্বরের বিপরীতে মুছে ফেলবে (যদি থাকে)।
-
অনুসন্ধান করুন। এটি রোল নম্বর সহ মানচিত্রে নামটি অনুসন্ধান করবে, যদি উপস্থিত নামটি দেখায়, অন্যথায় পাওয়া যায়নি দেখায়৷
সুতরাং, যদি ইনপুটটি n =8 এর মত হয়, প্রশ্ন =[[1,5,"অতনু"], [1,8, "তপন"], [1,3,"মণীশ"],[2,8], [1,9, "পিয়ালী"], [3,8], [3,3], [3,5]], তাহলে আউটপুট হবে [পাওয়া যায়নি, মনীশ, অতনু] কারণ রোল 8 নেই, রোল 3-এর ছাত্রের নাম মনীশ এবং রোল 5-এর ছাত্রের নাম "অতনু"৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=প্রশ্নের সংখ্যা
- একটি মানচিত্র m সংজ্ঞায়িত করুন, পূর্ণসংখ্যা টাইপ কী এবং স্ট্রিং টাইপ মান।
- যখন n অ-শূন্য, প্রতিটি পুনরাবৃত্তিতে n হ্রাস করুন, করুন:
- বর্তমান কোয়েরি ধরুন t
- রোল নম্বর নিন
- যদি t 1 এর মত হয়, তাহলে:
- নাম নিন
- m[roll] :=নাম
- অন্যথায় যখন t 2 এর মত হয়, তখন:
- m[roll] :=একটি ফাঁকা স্ট্রিং
- অন্যথায়
- যদি m[roll] ফাঁকা স্ট্রিং না হয়, তাহলে:
- m[roll] প্রদর্শন করুন
- অন্যথায়
- প্রদর্শন করুন "পাওয়া যায়নি"
- যদি m[roll] ফাঁকা স্ট্রিং না হয়, তাহলে:
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <iostream> #include <map> using namespace std; int main(){ int n; cin >> n; map<int, string> m; while (n--) { int t; cin >> t; int roll; cin >> roll; if (t == 1) { string name; cin >> name; m[roll] = name; } else if (t == 2) { m[roll] = ""; } else { if(m[roll] != "") cout << m[roll] << endl; else cout << "Not found" << endl; } } }
ইনপুট
8 1 5 Atanu 1 8 Tapan 1 3 Manish 2 8 1 9 Piyali 3 8 3 3 3 5
আউটপুট
Not found Manish Atanu