numeric_limits लक्षण है कि संख्यात्मक _ सीमा < पूर्णांक (कम से कम एमएस विजुअल स्टूडियो 2008 का उपयोग) विभिन्न प्रकार जानकारी प्राप्त करने का एक सामान्य तरीके से,numeric_limits <T> :: min() की असंगत परिभाषा को कैसे कार्य करें?
template<typename T>
T min(const std::vector<T>& vect)
{
T val = std::numeric_limits<T>::min();
for(int i=0 ; i<vect.size() ; i++)
val = max(T, vect[i]);
return val;
}
समस्या
जैसी चीज़ों के लिए सक्षम होने के लिए माना जाता है > :: min() सबसे छोटा नकारात्मक संख्या देता है, जबकि संख्यात्मक _ सीमा < सीमा > :: मिनट() सबसे छोटा सकारात्मक नंबर देता है!
कोई भी इस डिजाइन के पीछे तर्कसंगत जानता है? क्या संख्यात्मक _ सीमाओं का उपयोग करने का कोई बेहतर (अनुशंसित?) तरीका है? ऊपर मेरी विशेष समारोह में निश्चित रूप से प्रारंभ, मैं कर सकता है टी [0] vect है, लेकिन है कि इसका जवाब मैं देख रहा हूँ नहीं है ..
भी देखें (फ्लोटिंग प्वाइंट विशेष) चर्चा here
अपने उदाहरण में दो कीड़े हैं। 1. समारोह, अधिकतम() बुलाया जाना चाहिए, क्योंकि यह अधिक से अधिक तत्व गणना करता है। 2. लाइन "वैल = अधिकतम (टी, vect [i])" होना चाहिए "वैल = अधिकतम (वैल, vect [i])"। – TonJ