में max_element और minmax_element के व्यवहार में अंतर सी ++ max_element
में, यदि अधिकतम तत्व हैं जो अधिकतम हैं, तो यह पहला ऐसा तत्व देता है। जबकि minmax_element
(सी ++ 11 आगे) अंतिम अधिकतम तत्व देता है।सी ++ एसटीएल
क्या इस व्यवहार के लिए मानकों से कोई कारण है?
cplusplus.com
एक से अधिक समान तत्व सबसे बड़ा मान है, तो से , ऐसे तत्वों के अंतिम करने के लिए दूसरा इटरेटर अंक।
तुलना पहले संस्करण के लिए ऑपरेटर < या दूसरे के लिए कंप का उपयोग करके किया जाता है; यदि कोई अन्य तत्व उससे कम की तुलना नहीं करता है तो एक तत्व सबसे बड़ा होता है। यदि एक से अधिक तत्व इस स्थिति को पूरा करते हैं, तो इटरेटर ने ऐसे तत्वों के पहले बिंदुओं को वापस कर दिया। जब एक एक minmax_element डिजाइन करने के लिए कोशिश करता है, प्रक्रिया (Cormen, Leiserson, रिवेस्ट में प्रस्तावित का उपयोग कर अपने पुस्तकालय की
[सीपीपी संदर्भ के अनुसार यह अपेक्षित व्यवहार है।] (Http://en.cppreference.com/w/cpp/algorithm/minmax_element) यह क्यों अपेक्षित है, मुझे मानक में तैराकी करना होगा । – user4581301
** [alg.min.max] ** (rev n4594 में 30 नोट) यह कानून होने का आदेश देता है। कोई तर्कसंगत सूचीबद्ध नहीं है। – user4581301
और भी दिलचस्प बात यह है कि 'minmax_element' न्यूनतम तत्व के लिए विपरीत नीति लागू करता है (पहला लौटाया जाता है)। –