क्या c ++ में enum के अधिकतम और न्यूनतम परिभाषित मूल्यों को खोजने का कोई तरीका है?
क्या c ++ में enum के अधिकतम और न्यूनतम परिभाषित मूल्यों को खोजने का कोई तरीका है?
जवाबों:
नहीं, C ++ में किसी भी एनम के अधिकतम और न्यूनतम परिभाषित मूल्यों को खोजने का कोई तरीका नहीं है। जब इस तरह की जानकारी की आवश्यकता होती है, तो अंतिम और पहले मूल्य को परिभाषित करने के लिए अक्सर अच्छा अभ्यास होता है। उदाहरण के लिए,
enum MyPretendEnum
{
Apples,
Oranges,
Pears,
Bananas,
First = Apples,
Last = Bananas
};
वहाँ के बीच हर मूल्य के लिए मूल्यों को नामित करने की आवश्यकता नहीं है Firstऔर Last।
नहीं, मानक C ++ में नहीं। आप इसे मैन्युअल रूप से कर सकते हैं:
enum Name
{
val0,
val1,
val2,
num_values
};
num_values इनम में मानों की संख्या समाहित होगी।
num_valuesको छोड़कर एनम में मूल्यों की संख्या समाहित करेगा num_values।
सी या सी ++ में एन एनम केवल स्थिरांक की एक सूची है। ऐसी कोई उच्च संरचना नहीं है जो इस तरह की जानकारी रखती हो।
आमतौर पर जब मुझे इस तरह की जानकारी की आवश्यकता होती है, तो मैं enum में अधिकतम और न्यूनतम मूल्य कुछ इस तरह से शामिल करता हूं:
enum {
eAaa = 1,
eBbb,
eCccc,
eMin = eAaaa,
eMax = eCccc
}
यह कैसे उपयोगी हो सकता है इसके कुछ उदाहरणों के लिए इस वेब पेज को देखें: स्टूपिड एनम ट्रिक्स
स्वचालित रूप से नहीं, लेकिन आप न्यूनतम और अधिकतम मानों को दर्शाने के लिए कृत्रिम एनम मान जोड़ सकते हैं, जैसे
typedef enum {start_of_colors=-1, eRed, eWhite, eBlue, eGray,
end_of_colors} eListOfTags;
for (eListOfTags i = start_of_colors+1; i < end_of_colors; i++) {
....
}
आपको उनकी आवश्यकता भी नहीं है, मैं जो करता हूं वह सिर्फ उदाहरण के लिए कहता हूं यदि आपके पास है:
enum Name{val0,val1,val2};
यदि आपके पास स्विच स्टेटमेंट है और यह जांचने के लिए कि क्या अंतिम मूल्य निम्नलिखित के रूप में पहुंचा था:
if(selectedOption>=val0 && selectedOption<=val2){
//code
}