सी ++ 11 में std::minmax_element
कार्य करता है जो मूल्यों की एक जोड़ी देता है। हालांकि, यह संभालने और पढ़ने के लिए काफी भ्रमित है, और दायरे को प्रदूषित करने के लिए एक अतिरिक्त, बाद में बेकार चर का उत्पादन करता है।क्या std :: जोड़े लौटने वाले कार्यों को आसानी से संभालने का कोई तरीका है?
auto lhsMinmax = std::minmax_element(lhs.begin(), lhs.end());
int &lhsMin = *(lhsMinMax.first);
int &lhsMax = *(lhsMinmax.second);
क्या ऐसा करने का कोई बेहतर तरीका है? कुछ की तरह:
int lhsMin;
int lhsMax;
std::make_pair<int&, int&>(lhsMin, lhsMax).swap(
std::minmax_element(lhs.begin(), lhs.end()));
कोई भी उल्लेख नहीं किया गया है C++ 17 अभी तक? https://skebanga.github.io/structured-bindings/ – xaxxon
एक प्रश्न: क्या 'minmax_element'' min_axment' और 'max_element' पर एक साथ उपयोग करने में कोई दक्षता लाभ है? –
@xaxxon: सी ++ 17 विशेषताएं सी ++ 11 में नहीं हैं। सवाल सी ++ 11 टैग किया गया है। तो यह एक दिलचस्प स्पर्शक है, लेकिन वास्तविक समाधान नहीं है। –