generics - C++ template function with vector -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 5 जवाब

    मेरे पास निम्न पंक्तियाँ हैं कोड और संकलन त्रुटियाँ यह टेम्प्लेट फ़ंक्शन, या सी ++ जेनेटिक्स या कुछ और के बारे में मेरी गलत समझ होनी चाहिए I इसे इंगित करने के लिए अग्रिम धन्यवाद। <पूर्व> #include & lt; iostream & gt; #include & lt; vector & gt; नेमस्पेस एसटीडी का उपयोग करना; टेम्पलेट & lt; typename T & gt; टी * खोज (वेक्टर & lt; T & gt; ve & vec, T मान) {वेक्टर & lt; T & gt; :: इटरेटर प्रथम = vec.begin (); वेक्टर & lt; T & gt; :: इटेटर अंतिम = vec.end (); के लिए (; पहले! = अंतिम; पहले ++) यदि (* पहले == मान) पहले लौट आए; वापसी 0; }

    कंसोल में संकलित त्रुटियां

      डीबग.cpp: फ़ंक्शन में "टी" * ढूंढें (std :: vector & lt; T, std :: आबंटक & lt; _CharT & gt; & gt; & amp ;, टी) एक ????: debug.cpp: 9: त्रुटि: अपेक्षित `; ' पहले से पहले Debug.cpp: 10: त्रुटि: अनुमानित ';' इससे पहले Debug.cpp: 11: त्रुटि: एक पहले ??? इस स्कोप डीबग में घोषित नहीं किया गया था। सीपीपी: 11: त्रुटि: एक '' अंतिम '' इस स्कोप में घोषित नहीं किया गया    

    आपको typename vector & lt; T & gt का उपयोग करने की आवश्यकता है ; :: इटरेटर पहले और पिछले के समान। अन्यथा कंपाइलर को घोषणा अस्पष्ट लगता है, क्योंकि यह महसूस नहीं होता है कि vector & lt; T & gt; :: iterator एक प्रकार है यह एक सदस्य समारोह या कुछ और हो सकता है तकनीकी रूप से उन्हें आश्रित टाइप नामों कहा जाता है (क्योंकि वे टेम्पलेट प्रकार T पर निर्भर करते हैं। हर बार जब आप पर निर्भर प्रकार का उपयोग करें typename सिर दर्द से बचने के लिए यह अधिक जानकारी के लिए उदाहरण देखें।

Comments

Popular posts from this blog

sql - Return Function using Cursor -

javascript - Is there any way to add a new parameter to a function programmatically? -

sql server - How to use pivot in this table -