इसलिए मान हमेशा 0 और वृद्धि पर से 1.
शुरू कर देंगे ध्यान रखें जब तक कि इस कोडिंग मानक जहां काम करते हैं, में लिखा है एक रखरखाव प्रोग्रामर आता है जब कि 6 महीनों में साथ और की तरह एक गणना करने के लिए कोई परिवर्तन नहीं करता:
enum MyEnum
{
value1,
value2 = 5,
value3,
maxValue
}
क्योंकि एक नया आवश्यकता के
, आप को समझाने के लिए मिल जाएगा उनके वैध परिवर्तन ने आवेदन क्यों तोड़ दिया।
नाम करने के लिए मूल्यों को संलग्न करने के लिए आप एक नक्शा इस्तेमाल कर सकते हैं:
int values[] = { 0, 1, 2 };
int valuesSize = sizeof(values)/sizeof(values[0]);
for (int i = 0; i < valuesSize; ++i)
{
func(values[i]);
}
या एक तुलनीय विधि का उपयोग कर:
typedef std::map<std::string,int> ValueMap;
ValueMap myMap;
myMap.insert(make_pair("value1", 0));
myMap.insert(make_pair("value2", 1));
myMap.insert(make_pair("value3", 2));
for(ValueMap::iterator iter = theMap.begin(); iter != theMap.end(); ++iter)
{
func(iter->second);
}
नाम आप एक सी शैली सरणी इस्तेमाल कर सकते हैं कोई फर्क नहीं है, तो एक std :: वेक्टर।
इसके अलावा, आप क्या कहते हैं अगर सच है, और the values will always start at 0 and increase by 1
तो मैं क्यों यह काम नहीं होगा करने के लिए के रूप में उलझन में हूँ:
const int categoryStartValue = 0;
const int categoryEndValue = 4;
for (int i = categoryStartValue; i < categoryEndValue; ++i)
{
func(i);
}
स्टॉप! आप पास्कल के लिए मुझे नास्तिक बना रहे हैं। –