std::[w]string
, std::[w]string::size_type
std::allocator<T>::size_type
के बराबर है, जो std::size_t
के बराबर है। अन्य कंटेनर के लिए, यह कुछ कार्यान्वयन निर्दिष्ट हस्ताक्षर पूर्णांक प्रकार है।
कभी-कभी यह सटीक प्रकार के लिए उपयोगी होता है, उदाहरण के लिए कोई जानता है कि किस प्रकार के प्रकार के आसपास लपेटता है (जैसे, UINT_MAX
) ताकि कोई इसका उपयोग कर सके। या टेम्पलेट्स के लिए, जहां आपको वास्तव में दो समान प्रकारों को फ़ंक्शन/क्लास टेम्पलेट्स को पास करने की आवश्यकता होती है।
अक्सर मुझे लगता है कि मैं ब्रेवटी या इटरेटर्स के लिए size_t
का उपयोग करता हूं। जेनेरिक कोड में, चूंकि आप आमतौर पर नहीं जानते कि आपके कंटेनर का उपयोग किस कंटेनर इंस्टेंस का उपयोग किया जाता है और उन कंटेनरों का आकार क्या है, आपको कंटेनर आकार को स्टोर करने की आवश्यकता होने पर Container::size_type
टाइपपीफ का उपयोग करना होगा।
स्रोत
2009-05-28 00:14:14
क्या आप इस उत्तर को स्पष्ट कर सकते हैं? मैंने 'N1804' के रूप में ड्राफ्ट मानकों पर वापस देखा है और मुझे 'आवंटक :: आकार_ प्रकार' और' size_type' के बीच कोई संबंध नहीं दिख रहा है। LibstdC++ पर एक त्वरित नज़र इस तरह के कुछ भी नहीं दिखाता है। –
@ShafikYaghmour, तो यह जवाब थोड़ा पुराना है, लेकिन पोर्टेबिलिटी को अधिकतम करने के लिए मुझे लगता है कि सलाह अभी भी अच्छी है: सी ++ 03 निर्दिष्ट "तालिका 32: आकार_ प्रकार: एक प्रकार जो आवंटन मॉडल में सबसे बड़ी वस्तु के आकार का प्रतिनिधित्व कर सकता है। " उस समय, 'size_t' शर्त उन बाधाओं के व्यावहारिक कार्यान्वयन था। हालांकि, सी ++ 11 में, अब यह अनिवार्य रूप से परिभाषित किया गया है: डिफ़ॉल्ट रूप से 'std :: make_unsigned :: type'। जो अभ्यास में है, शायद 'size_t' के साथ समान या संगत होगा। –
CARE उत्तर गलत है .... http: // stackoverflow देखें।कॉम/प्रश्न/4849678/सी-फॉर-लूप-आकार-प्रकार-बनाम-आकार-टी टीएल: डीआर: आवंटकों आकार_ प्रकार को आकार_टी होना चाहिए और सी ++ में 17 आकार_ प्रकार को बहिष्कृत किया जाएगा। – user3063349