Saturday, 15 May 2010

c++ - When should I use vector::size_type instead of size_t? -


में मैं निम्नलिखित देख रहा हूँ:

  के लिए (सदिश & lt; int & gt; :: size_type ix = 0; ix! = Ivec.size (); ++ ix) {ivec [ix] = 0; }   

मैं समझता हूं कि क्यों int यहां उपयोग नहीं किया जाता है, लेकिन क्यों न केवल size_t का उपयोग करें?

किस परिस्थिति में मुझे vector & lt; int & gt; :: size_type के बजाय size_t का उपयोग करना चाहिए

< Div class = "post-text" itemprop = "text">

उपयोग करने के लिए प्राथमिक समय size_type एक टेम्पलेट में है। हालांकि std :: vector & lt; T & gt; :: आकार-प्रकार आमतौर पर size_t , some_other_container & lt; T & gt; :: size_type हो सकता है कुछ अन्य प्रकार बजाय। कुछ चीजों में से एक उपयोगकर्ता को std नाम स्थान में जोड़ने की अनुमति है, कुछ उपयोगकर्ता परिभाषित प्रकार के लिए एक मौजूदा टेम्पलेट का स्पेशलाइजेशन है। इसलिए, कुछ ओडबॉल के लिए std :: vector & lt; T & gt; :: size_type सकता वास्तव में size_t , भले ही मानक पुस्तकालय में परिभाषित आधार टेम्पलेट शायद हमेशा size_t का उपयोग करता है।

इसलिए, यदि आप एक विशिष्ट कंटेनर के लिए एक टेम्पलेट के अंदर सही प्रकार का उपयोग करना चाहते हैं उस कंटेनर के साथ काम करता है, आप size_t को संभालने के बजाय container :: size_type का उपयोग करना चाहते हैं।

नोट, हालांकि, यह सामान्य कोड शायद ही कभी काम करना चाहिए सीधे एक कंटेनर के साथ इसके बजाय, आमतौर पर इसे सामान्यतः काम करने वाले के साथ काम करना चाहिए, इसलिए कंटेनर और लेफ्टिनेंट; T & gt; :: size_type के बजाय, यह आमतौर पर कुछ std :: iterator_traits & lt; जोयइटरेटर & gt; :: अंतर_प्रकार इसके बजाय।

No comments:

Post a Comment