पहला भाग:std :: startizer_list की अंतर्निहित संरचना क्या है?
std::initializer_list
की सी ++ 11 एक बहुत उपयोगी सुविधा है, इसलिए मैं यह कैसे मानक पुस्तकालय में कार्यान्वित किया जाता है सोचा। जो मैंने here पढ़ा है, से संकलक T
प्रकार की एक सरणी बनाता है और सूचक को initializer_list<T>
पर देता है।
यह भी कहता है कि initializer_list
की प्रतिलिपि बनाने से एक ही ऑब्जेक्ट एक ही डेटा का संदर्भ देगा: ऐसा क्यों है? मैं अनुमान लगाया है कि वह या तो:
- नई
initializer_list
दूसरा हिस्सा करने के लिए नए initializer_list
बस से std::vector
रचनाकारों के लिए कई ऑनलाइन संदर्भों में से एक:
vector (initializer_list<value_type> il,
const allocator_type& alloc = allocator_type());
(6) प्रारंभकर्ता सूची निर्माता
Constructs इल में तत्वों में से प्रत्येक की एक प्रति, उसी क्रम में के साथ एक कंटेनर।
मैं अभी तक इस कदम अर्थ विज्ञान के साथ सहज नहीं हूँ, लेकिन il
का डेटा vector
में नहीं ले जाया जा सकता है? मुझे std::vector
के गहरे कार्यान्वयन से अवगत नहीं है, लेकिन आईआईआरसी यह सादे-पुराने सरणी का उपयोग करता है।
cplusplus.com पर भरोसा न करने के किसी अन्य कारण की तरह लगता है। मानक में डिलविंग, अंततः प्रारंभिक-सूची सीटीओआर में जोड़ी-ऑफ-इटरेटर सीटीओआर को बुलाता है, जो (एम्प्लस निर्माण का उपयोग करके) तत्वों को संभवतः स्थानांतरित कर देगा। – Angew
cplusplus.com एक भयानक, भयानक साइट है जो सी ++ समुदाय को नुकसान पहुंचाती है। किसी को इसे होस्ट करने वाले सर्वरों को तोड़ना चाहिए, हार्ड ड्राइव को जला देना चाहिए, उन्हें ठोस में घुमाएं और उन्हें समुद्र के नीचे डुबो दें। –
'std :: startizer_list की अंतर्निहित संरचना क्या है?' अच्छे कारण के लिए, आप से दूर सारणी। –