Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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 1 के समान है, तो:
      • नाम लें
      • एम [रोल] :=नाम
    • अन्यथा जब t 2 के समान हो, तब:
      • m[रोल] :=एक खाली स्ट्रिंग
    • अन्यथा
      • यदि 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. सी ++ एसटीएल में नक्शा max_size ()

    इस लेख में हम C++ STL में map::max_size() फंक्शन की कार्यप्रणाली, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। C++ STL में मैप क्या है? मानचित्र सहयोगी कंटेनर हैं, जो एक विशिष्ट क्रम में कुंजी मान और मैप किए गए मान के संयोजन से बने तत्वों को संग्रहीत करने की सुविधा प्रदान करते हैं। मैप कंटेनर में डेटा को

  1. नक्शा ::ऑपरेटर [] सी ++ एसटीएल कार्यक्रम में

    इस लेख में हम C++ STL में मैप के बराबर [] ऑपरेटर की कार्यप्रणाली, सिंटैक्स और उदाहरण पर चर्चा करेंगे। C++ STL में मानचित्र क्या है? मानचित्र सहयोगी कंटेनर हैं, जो एक विशिष्ट क्रम में कुंजी मान और मैप किए गए मान के संयोजन से बने तत्वों को संग्रहीत करने की सुविधा प्रदान करते हैं। मैप कंटेनर में डेटा

  1. यह जांचने के लिए प्रोग्राम कि कोई ऐरे पालिंड्रोम है या C++ में STL का उपयोग नहीं कर रहा है

    एन पूर्णांकों की एक सरणी गिरफ्तारी [एन] को देखते हुए, कार्य यह पता लगाना है कि सरणी एक पैलिंड्रोम है या नहीं। हमें बताए गए कार्य को C++ में STL का उपयोग करके करना है। सी ++ में एसटीएल (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) की एक विशेषता है, यह सी ++ टेम्प्लेट क्लासेस का एक सेट है जो डेटा संरचनाओं और ढेर,