Friday 15 February 2013

c++ - dependent scope error with stl -


<पूर्व> #include & lt; iostream & gt; # शामिल करें & lt; नक्शा & gt; #include & lt; स्ट्रिंग & gt; नेमस्पेस एसटीडी का उपयोग करना; टेम्पलेट & lt; कक्षा T & gt; वर्ग काउंटर {सार्वजनिक: काउंटर () {totalCount} ~ काउंटर () {} bool में कुंजी (टी कुंजी) शामिल है {नक्शा, लेफ्टिनेंट; डबल, gt; :: iterator = counter.find (T); यदि (यह == counter.end ()) गलत लौटा; वापस सच; } निजी: नक्शे & lt; T, double & gt; काउंटर; डबल कुलकाउंट; }; Int main () {काउंटर & lt; स्ट्रिंग & gt; तालिका; वापसी 0; }

यह कोड भी संकलित नहीं करता है और मैं यह नहीं समझ सकता कि त्रुटि क्या है किसी भी सहायता की सराहना की जाएगी। धन्यवाद!

संकलित करने के लिए cmd

  g ++ counter.cpp   

त्रुटि

  त्रुटि: आवश्यकता "टाइप करें" टाइप करें पहले "स्टड :: नक्शा" और "टी, डबल"> से पहले: iteratorâ ???? क्योंकि '' स्टड :: नक्शा & lt; टी, डबल & gt; एक ???? एक निर्भर दायरा है  

संकलक जानता है कि टी एक प्रकार का नाम है (typename) आपके टेम्पलेट घोषणापत्र से लेकिन यह नहीं पता है कि क्या std :: map :: iterator एक प्रकार या कुछ अलग है इसलिए कंपाइलर के रूप में आपको संकलक को एक प्रकार का एक नाम बताया जाने के लिए इस कथन से 'typename' जोड़ना है।

सारांश: परिवर्तन

  map & lt; T, डबल & gt; :: इटरेटर यह = काउंटर.फंड (टी);   

से

  टाइपनाम का नक्शा & lt; T, double & gt; :: iterator = counter.find (T);    

No comments:

Post a Comment