आप पाश के लिए एक में एक ही प्रकार के 2 वैरिएबल निर्धारित कर सकते हैं:लूप प्रारंभकर्ता में दो अलग-अलग प्रकार के चर परिभाषित करने का कोई तरीका है?
int main() {
for (int i = 0, j = 0; i < 10; i += 1, j = 2*i) {
cout << j << endl;
}
}
लेकिन यह विभिन्न प्रकार के चर निर्धारित करने गैरकानूनी है:
int main() {
for (int i = 0, float j = 0.0; i < 10; i += 1, j = 2*i) {
cout << j << endl;
}
}
वहाँ यह करने के लिए कोई तरीका है? (मुझे i
लूप के अंदर j
का उपयोग करने की आवश्यकता नहीं है।)
यदि आपने पूरी तरह से हैक किया है और अस्पष्ट समाधान है, तो यह मेरे लिए ठीक है।
इस संक्रमित उदाहरण में मुझे पता है कि आप दोनों चर के लिए double
का उपयोग कर सकते हैं। मैं एक सामान्य जवाब की तलाश में हूं।
कृपया शरीर के बाहर किसी भी चर को स्थानांतरित करने का सुझाव न दें, शायद मेरे लिए उपयोग करने योग्य नहीं है क्योंकि एक लूप के बाद गायब होना है और मेरे कथन को foreach
मैक्रो में संलग्न करना है:
#define foreach(var, iter, instr) { \
typeof(iter) var##IT = iter; \
typeof(iter)::Element var = *var##IT; \
for (; var##_iterIT.is_still_ok(); ++var##IT, var = *var#IT) { \
instr; \
} \
}
यह इस प्रकार किया जा सकता है:
foreach(ii, collection, {
cout << ii;
}).
लेकिन मैं कुछ है कि इस तरह इस्तेमाल किया जाएगा की जरूरत है:
foreach(ii, collection)
cout << ii;
कृपया किसी भी रनटाइम ओवरहेड को पेश न करें (लेकिन यह संकलित करने में धीमा हो सकता है)।
में और कुछ दिए गए नाम के साथ कई चर प्रकार घोषणा के लिए भी कुछ सामान्य तरीका प्रदान करता है आपको पता है कि वहाँ हो सकता है कोई समाधान नहीं है जो आपके द्वारा दी गई सभी शर्तों को पूरा करता है? –
"कृपया शरीर के बाहर के किसी भी चर को स्थानांतरित करने का सुझाव न दें, शायद मेरे लिए उपयोग न करें क्योंकि लूप के बाद हीटरेटर गायब हो जाना चाहिए।" ऐसा लगता है जैसे आपने कृत्रिम आवश्यकता बनाई है। आप जिस चीज की परवाह करते हैं वह इटरेटर का दायरा है, न कि यह इसके शरीर में है या नहीं। स्कोपिंग के बारे में अपने पूर्वकल्पित विचारों को जोड़ने के बिना * केवल * अपनी आवश्यकताओं को समझाने का प्रयास करें। लोगों के लिए आपकी समस्या को समझना और आपकी मदद करना आसान होगा। – dss539
हर बार जब कोई समाधान के साथ आता है, तो आप "कृपया मत कहो ....." और टिप्पणी करें "उपयोगी नहीं है ... शरीर बदलता है ...." आप ऐसा क्यों करते हैं ?? –