क्या दक्षता के अनुसार छोरों लेखन के पसंदीदा तरीका है: रास्ता एक)क्या मैं अनुकूलित कर सकता हूं या संकलक को ऐसा करने देता हूं?
/*here I'm hoping that compiler will optimize this
code and won't be calling size every time it iterates through this loop*/
for (unsigned i = firstString.size(); i < anotherString.size(), ++i)
{
//do something
}
या हो सकता है मैं इसे इस तरह से करना चाहिए: रास्ता ख)
unsigned first = firstString.size();
unsigned second = anotherString.size();
और अब मैं लिख सकते हैं :
for (unsigned i = first; i < second, ++i)
{
//do something
}
दूसरा तरीका मुझे दो कारणों से बदतर विकल्प की तरह लगता है: स्कोप प्रदूषण और क्रियापदता यह सुनिश्चित करने का लाभ है कि आकार() प्रत्येक वस्तु के लिए एक बार लागू किया जाएगा।
अपने उत्तरों के लिए तत्पर हैं।
ध्यान दें कि 'firstString.size()' केवल एक बार बुलाया जाएगा, ताकि इसे लूप से बाहर ले जाने योग्य नहीं है। –
या आप iterators का उपयोग कर सकते हैं और इस समस्या से पूरी तरह से बचें। –
"हस्ताक्षरित" का उपयोग न करें; इस बात की कोई गारंटी नहीं है कि "std :: size_t" सभी प्लेटफ़ॉर्म पर हस्ताक्षरित जैसा ही होगा (उदा। यह "लंबे समय तक हस्ताक्षरित" हो सकता है)। इसके बजाय, "std :: size_t" का उपयोग करें। –