Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में मैप STL का उपयोग करके छात्र रोल और नाम स्टोर करने का प्रोग्राम


मान लीजिए हमारे पास छात्रों के रोल और नाम के लिए एक मैप डेटा संरचना है जहां रोल पूर्णांक डेटा है और नाम स्ट्रिंग प्रकार का डेटा है। हमारे मानक इनपुट में हम n क्वेरी प्रदान करते हैं। प्रत्येक क्वेरी (प्रत्येक पंक्ति में) में दो तत्व होने चाहिए और टाइप 1 क्वेरी के लिए तीन तत्व होते हैं। पहला ऑपरेटर है, दूसरा रोल है और तीसरा नाम है, दो तत्वों वाली क्वेरी के लिए दूसरा आइटम रोल नंबर है। ऑपरेशन इस प्रकार हैं:

  • 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] क्योंकि रोल 8 मौजूद नहीं है, रोल 3 वाले छात्र का नाम Manish है और रोल 5 वाले छात्र का नाम "Atanu" है।

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • n := क्वेरी की संख्या
  • पूर्णांक प्रकार की कुंजी और स्ट्रिंग प्रकार के मान का एक मैप m परिभाषित करें
  • जब तक n शून्येतर है, प्रत्येक पुनरावृत्ति में n घटाएं:
    • वर्तमान क्वेरी प्रकार t लें
    • रोल नंबर लें
    • यदि t == 1:
      • नाम लें
      • m[roll] := name
    • अन्यथा यदि t == 2:
      • m[roll] := खाली स्ट्रिंग
    • अन्यथा:
      • यदि m[roll] खाली स्ट्रिंग नहीं है:
        • 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++ STL में map::max_size()

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

  1. - C++ STL में map::operator[]

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

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

    n पूर्णांकों की एक सरणी arr[n] दी गई है, कार्य यह जांचना है कि क्या सरणी एक पैलिंड्रोम है या नहीं। हमें C++ में STL (स्टैंडर्ड टेम्पलेट लाइब्रेरी) का उपयोग करके यह कार्य करना है। C++ में STL (Standard Template Library) की एक विशेषता है, यह C++ टेम्पलेट कक्षाओं का एक समूह है जिसका उपयोग डेटा संरचना