c++ - not2 stl negator -


एसटीएल का अध्ययन मैं ने एक मेटरको को नॉट टू 2 लेकिन एनकॉन्टर समस्याओं से नकारने की कोशिश की है। यहां एक उदाहरण है:

  #include & lt; iostream & gt; # शामिल करें & lt; vector & gt; #include & lt; कार्यात्मक & gt; # शामिल करें & lt; एल्गोरिथम & gt; नेमस्पेस एसटीडी का उपयोग करना; स्ट्रेट मैस्ट्रक्ट: बाइनरी_ फ़ंक्शन और लेफ्टिनेंट; इंट, इंट, बॉल्स एंड जी; {बूल ऑपरेटर () (इंट आई, एंट जे) {रिटर्न आई & lt; j; }}; टेम्पलेट & lt; कक्षा T & gt; वर्ग जनरेटर {सार्वजनिक: जनरेटर (टी प्रारंभ = 0, टी एसटीपी = 1): चालू (प्रारंभ), चरण (एसटीपी) {} टी ऑपरेटर () () {वर्तमान चालू = कदम; } निजी: टी चालू; टी कदम; }; Int main () {वेक्टर & lt; int & gt; पहले (10); उत्पन्न (प्रथम.बेजिन (), पहले.एंड (), जेनरेटोर & lt; int & gt; (10,10)); Cout & lt; & lt; "सबसे छोटा तत्व" & lt; & lt; * Min_element (प्रथम.बीजिन (), पहले.एंड (), माइस्ट्रक्ट ()) & lt; & lt; endl; Cout & lt; & lt; "सबसे छोटा तत्व:" & lt; & lt; * अधिकतम_एलिमेंट (प्रथम.बीजिन (), पहले.एंड (), नॉट 2 (माइस्ट्रक्ट ())) & lt; & lt; endl; }  

कोड की अंतिम पंक्ति जी ++ का उपयोग करके संकलित नहीं करती शायद एक बेवकूफ त्रुटि है लेकिन?

बदलें:

  बूल ऑपरेटर () (Int i, int j) {वापसी i & lt; j; }  

भी:

  bool ऑपरेटर () (int i, int j) const {return i & lt; j; }  

टिप्पणियों में आपके प्रश्न पर दो निहित प्रश्न हैं:

1) मुझे विधि को const क्यों जोड़ना चाहिए:

आप वस्तु का कोई भी सदस्य बदल नहीं कर सकते हैं। Const उपयोग करना चाहिए।
विधियों को सही बनाना आसान है तथ्यों को वास्तविकता के रूप में वास्तविकता बनने के बाद तरीकों को स्थिरता जोड़ना, जैसा कि आपकी कक्षा के पदानुक्रम में और आगे आगे बढ़ता है।

2) विधि को जोड़ने से इसे संकलित क्यों किया जाता है।

ऑब्जेक्ट के निर्माता not2 () द्वारा लौटाए गए एक पैरामीटर के रूप में आपके ऑब्जेक्ट के लिए एक कॉन्फेंट संदर्भ ले रहा है। यह एक अपेक्षाकृत सामान्य तकनीक है, लेकिन आवश्यकता होती है कि आपके द्वारा उपयोग की जाने वाली किसी भी विधि भी const।


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -