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()
प्रकार का नहीं है । यह टाइप का है । unsigned
unsigned int
std::size_t
std::size_t
एक _-कार्यान्वयन-परिभाषित टंकण है। मानक देखें। आपके वर्तमान कार्यान्वयन के std::size_t
बराबर हो सकता है unsigned
, लेकिन यह प्रासंगिक नहीं है। इसे रोकने के परिणामस्वरूप गैर-पोर्टेबल कोड और अपरिभाषित व्यवहार हो सकता है।
std::size_t
व्यवहार में है। क्या आपको लगता है कि हमने 6 वर्षों में टिप्पणियों के इस जुमले की धारा में अभी तक सब कुछ कवर किया है?