কম্পিউটার টিউটোরিয়াল

C++-এ STL Map ব্যবহার করে স্টুডেন্ট রোল ও নাম সংরক্ষণ করার প্রোগ্রাম


ধরা যাক একটি map ডেটা স্ট্রাকচার আছে যাতে স্টুডেন্টের রোল (int) এবং নাম (string) সংরক্ষণ করা হবে। স্ট্যান্ডার্ড ইনপুটে n কোয়েরি দেওয়া থাকবে। প্রতিটি কোয়েরিতে ২ বা ৩টি এলিমেন্ট থাকবে। টাইপ ১ হলে তিনটি এলিমেন্ট (অপারেটর, রোল, নাম), টাইপ ২ বা ৩ হলে দুটি এলিমেন্ট (অপারেটর, রোল)। অপারেশনগুলো:

  • Insert (১): রোল কী হিসেবে নাম মানচিত্রে डालুন
  • Delete (২): রোল অনুযায়ী এন্ট্রি মুছুন (খালি স্ট্রিং দিয়ে)
  • Search (৩): রোল দিয়ে খুঁজুন, পাওয়া গেলে নাম প্রিন্ট করুন, না পেলে "Not found"

উদাহরণস্বরূপ, n=8, queries=[[1,5,"Atanu"],[1,8,"Tapan"],[1,3,"Manish"],[2,8],[1,9,"Piyali"],[3,8],[3,3],[3,5]] হলে আউটপুট: [Not found, Manish, Atanu]

সমাধানের ধাপসমূহ

  • n := কোয়েরি সংখ্যা
  • map m সংজ্ঞায়িত করুন
  • while(n--) লুপ:
    • t, roll ইনপুট নিন
    • যদি t==1: name ইনপুট নিন, m[roll]=name
    • যদি t==2: m[roll]=""
    • অন্যথায় (t==3): m[roll] খালি নয়লে প্রিন্ট করুন, অন্যথায় "Not found"

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন:

#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

  1. C++-এ ডেটা হাইডিং ও এনক্যাপসুলেশন ব্যবহার করে স্টুডেন্ট ইনফো ম্যানেজমেন্ট

  2. C++ STL-এ map::max_size() ফাংশন

  3. C++ STL-এ map::operator[]

  4. সি++ STL ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা তা যাচাই করার প্রোগ্রাম