কম্পিউটার

মানচিত্র STL ব্যবহার করে ছাত্রদের রোল এবং নাম সংরক্ষণ করতে C++ প্রোগ্রাম


ধরুন আমাদের স্টুডেন্ট রোলের জন্য একটি ম্যাপ ডেটা স্ট্রাকচার আছে এবং রোলের নাম হল একটি পূর্ণসংখ্যা ডেটা এবং নাম হল স্ট্রিং টাইপ ডেটা। আমাদের স্ট্যান্ডার্ড ইনপুটে আমরা 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]
        • প্রদর্শন করুন
      • অন্যথায়
        • প্রদর্শন করুন "পাওয়া যায়নি"

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#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. ম্যাপ max_size() C++ STL-এ

  3. ম্যাপ::অপারেটর[] C++ STL প্রোগ্রামে

  4. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম