C ++ में वेक्टर के ऊपर चलने का सही तरीका क्या है?
इन दो कोड अंशों पर विचार करें, यह ठीक काम करता है:
for (unsigned i=0; i < polygon.size(); i++) {
sum += polygon[i];
}
और ये वाला:
for (int i=0; i < polygon.size(); i++) {
sum += polygon[i];
}
जो उत्पन्न करता है warning: comparison between signed and unsigned integer expressions।
मैं सी ++ की दुनिया में नया हूं, इसलिए unsignedचर मुझे थोड़ा सा भयावह लगता है और मुझे पता है कि unsignedचर का उपयोग खतरनाक हो सकता है यदि सही तरीके से उपयोग नहीं किया जाता है, तो - क्या यह सही है?
.size()प्रकार का नहीं है । यह टाइप का है । unsignedunsigned intstd::size_t
std::size_tएक _-कार्यान्वयन-परिभाषित टंकण है। मानक देखें। आपके वर्तमान कार्यान्वयन के std::size_tबराबर हो सकता है unsigned, लेकिन यह प्रासंगिक नहीं है। इसे रोकने के परिणामस्वरूप गैर-पोर्टेबल कोड और अपरिभाषित व्यवहार हो सकता है।
std::size_tव्यवहार में है। क्या आपको लगता है कि हमने 6 वर्षों में टिप्पणियों के इस जुमले की धारा में अभी तक सब कुछ कवर किया है?