तथ्यों:
i ++ और ++ i को पढ़ना उतना ही आसान है। आपको एक पसंद नहीं है क्योंकि आप इसके लिए अभ्यस्त नहीं हैं, लेकिन अनिवार्य रूप से कुछ भी नहीं है जो आप इसे गलत समझ सकते हैं, इसलिए यह पढ़ने या लिखने के लिए अधिक काम नहीं है।
कम से कम कुछ मामलों में, पोस्टफिक्स ऑपरेटर कम कुशल होगा।
हालाँकि, 99.99% मामलों में, यह कोई फर्क नहीं पड़ेगा क्योंकि (ए) यह वैसे भी एक साधारण या आदिम प्रकार पर काम करेगा और यह केवल एक समस्या है अगर यह एक बड़ी वस्तु (बी) की नकल कर रहा है तो यह प्रदर्शन में नहीं होगा कोड का महत्वपूर्ण हिस्सा (सी) आपको नहीं पता कि कंपाइलर इसे ऑप्टिमाइज़ करेगा या नहीं, यह कर सकता है।
इस प्रकार, मैं उपसर्ग का उपयोग करने का सुझाव देता हूं, जब तक कि आपको विशेष रूप से पोस्टफिक्स की आवश्यकता नहीं है, तब तक पाने के लिए एक अच्छी आदत है, क्योंकि (ए) अन्य चीजों के साथ सटीक होना एक अच्छी आदत है और (बी) एक बार एक नीला चाँद में आप पोस्टफ़िक्स का उपयोग करने का इरादा करेंगे। और इसे गलत तरीके से प्राप्त करें: यदि आप हमेशा वही लिखते हैं जो आपका मतलब है, तो इसकी संभावना कम है। प्रदर्शन और अनुकूलन के बीच हमेशा एक व्यापार होता है।
जब तक आपको आवश्यकता न हो, आपको सामान्य ज्ञान का उपयोग करना चाहिए और न ही माइक्रो-ऑप्टिमाइज़ करना चाहिए, लेकिन न तो इसके लिए ध्वजहीन रूप से अक्षम होना चाहिए। आमतौर पर इसका मतलब होता है: पहला, किसी भी कोड निर्माण को नियमबद्ध करना, जो गैर-महत्वपूर्ण क्रिटिकल कोड में भी अस्वीकार्य रूप से अक्षम है (सामान्य तौर पर एक मौलिक वैचारिक त्रुटि का प्रतिनिधित्व करता है, जैसे बिना किसी कारण के 500 एमबी ऑब्जेक्ट को पास करना); और दूसरा, कोड लिखने के हर दूसरे तरीके में, सबसे स्पष्ट चुनें।
हालांकि, यहां, मेरा मानना है कि उत्तर सरल है: मेरा मानना है कि उपसर्ग लिखना तब तक है जब तक कि आपको विशेष रूप से पोस्टफ़िक्स की आवश्यकता न हो (ए) बहुत मामूली रूप से स्पष्ट और (बी) बहुत अधिक कुशल होने की संभावना है, इसलिए आपको हमेशा लिखना चाहिए कि डिफ़ॉल्ट रूप से, लेकिन अगर आप भूल जाते हैं तो इसके बारे में चिंता न करें।
छह महीने पहले, मैंने आपके जैसे ही सोचा था, कि i ++ अधिक प्राकृतिक था, लेकिन यह विशुद्ध रूप से आप के लिए उपयोग किया जाता है।
EDIT 1: स्कॉट मेयर्स, "मोर इफेक्टिव सी ++" में, जिसे मैं आमतौर पर इस बात पर भरोसा करता हूं, का कहना है कि आपको उपयोगकर्ता-परिभाषित प्रकारों पर पोस्टफ़िक्स ऑपरेटर का उपयोग करने से बचना चाहिए (क्योंकि पोस्टफ़िक्स इंक्रीमेंट फ़ंक्शन का एकमात्र सामान्य कार्यान्वयन है) ऑब्जेक्ट की कॉपी, इंक्रीमेंट करने के लिए उपसर्ग इंक्रीमेंट फ़ंक्शन को कॉल करें और कॉपी वापस करें, लेकिन कॉपी ऑपरेशन महंगा हो सकता है)।
इसलिए, हम नहीं जानते हैं कि क्या (ए) के बारे में कोई सामान्य नियम हैं जो आज सच है, (बी) कि क्या यह आंतरिक प्रकारों पर भी लागू होता है (कम) तो क्या आपको "++" का उपयोग करना चाहिए एक हल्के पुनरावृत्ति वर्ग की तुलना में अधिक कुछ भी। लेकिन सभी कारणों के लिए जो मैंने ऊपर वर्णित किया है, इससे कोई फर्क नहीं पड़ता है, जो मैंने पहले कहा था वह करो।
EDIT 2: यह सामान्य अभ्यास को संदर्भित करता है। यदि आपको लगता है कि कुछ विशिष्ट उदाहरण में यह महत्वपूर्ण है, तो आपको इसे प्रोफाइल करना चाहिए और देखना चाहिए। प्रोफाइलिंग आसान और सस्ती है और काम करती है। पहले सिद्धांतों से समर्पण जिसे अनुकूलित करने की आवश्यकता है वह कठिन और महंगा है और काम नहीं करता है।
i++
इससे पहले कि मैं जानता था कि इस पर प्रदर्शन को प्रभावित कर सकता है++i
तो मैं बंद,। पहले तो बाद में थोड़ा अजीब लगा, लेकिन थोड़ी देर के बाद मुझे इसकी आदत हो गई और अब यह उतना ही स्वाभाविक लगता हैi++
।