मैं C ++ में उच्च प्रदर्शन और कम मेमोरी ओवरहेड को ध्यान में रखते हुए बहुत सारे गणना कोड के साथ काम करता हूं। यह एसटीएल कंटेनरों (ज्यादातर vector) का उपयोग करता है , और लगभग हर एक फ़ंक्शन में उस कंटेनरों पर पुनरावृत्त करता है।
पुनरावृति कोड इस तरह दिखता है:
for (int i = 0; i < things.size(); ++i)
{
// ...
}
लेकिन यह हस्ताक्षरित / अहस्ताक्षरित बेमेल चेतावनी (विजुअल स्टूडियो में C4018) का उत्पादन करता है ।
intकुछ unsignedप्रकार के साथ बदलना एक समस्या है क्योंकि हम अक्सर ओपनएमपी प्रैग्मैस का उपयोग करते हैं, और इसके लिए काउंटर की आवश्यकता होती है int।
मैं (सैकड़ों) चेतावनियों को दबाने वाला हूं, लेकिन मुझे डर है कि मैंने समस्या के कुछ सुरुचिपूर्ण समाधान को याद किया है।
पुनरावृत्तियों पर । मुझे लगता है कि उपयुक्त स्थानों पर लागू होने पर पुनरावृत्तियाँ महान हैं। मैं जिस कोड के साथ काम कर रहा हूं, वह कभी भी रैंडम-एक्सेस कंटेनरों को listया कुछ में नहीं बदलेगा (इसलिए int iपहले से ही कंटेनर एग्नॉस्टिक है), और हमेशा वर्तमान सूचकांक की आवश्यकता होगी । और सभी अतिरिक्त कोड आपको टाइप करने की आवश्यकता होती है (इट्रेटर ही और इंडेक्स) बस मामलों को उलझाते हैं और अंतर्निहित कोड की सादगी को बाधित करते हैं।
int।