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
Post a Comment