मैं बस एसटीएल सीख रहा हूं और reverse_iterator
मुझे उलझन में डाल दिया है। इसमें एक डिफ़ॉल्ट कन्स्ट्रक्टर है लेकिन मुझे समझ में नहीं आता कि इसका उपयोग कैसे किया जाए। मैंने कोशिश की:रिवर्स_इटरेटर का डिफॉल्ट कन्स्ट्रक्टर क्यों है?
reverse_iterator<int*> r{};
r --;
और कार्यक्रम दुर्घटनाग्रस्त हो गया। मेरा मानना है कि इस उपयोग का कोई मतलब नहीं है और यह आसानी से दुर्घटना का कारण बन सकता है, तो डिफ़ॉल्ट कन्स्ट्रक्टर का उपयोग क्यों किया जाता है?
शायद "अनियमित" इटेटर को घोषित करने का समर्थन करने के लिए केवल एक विशिष्ट मूल्य असाइन किया जाए। बस डिफॉल्ट-निर्मित इटरेटर्स को अनियमित चर के रूप में देखें, यानी जब तक आप एक सार्थक मूल्य असाइन नहीं करते हैं तब तक उनके साथ कुछ भी न करें। – AnT
आपको एक पॉइंटर को परिभाषित करने की अनुमति क्यों दी जाती है जो 'nullptr' को इंगित करती है और फिर इसे अस्वीकार करती है? ऐसी कई चीजें हैं जिन्हें बहुत असुरक्षित, अपरिभाषित भी किया जाता है। यह सी ++ की गति देता है और यह शूट-स्वयं-इन-द-पैर स्थिति है। –
@ रिकस्टली मुझे विश्वास है कि सी ++ मानक लाइब्रेरी "इच्छाशक्ति पर शूट फीट" मानसिकता से चली गई है, "यदि आप कुछ भी खर्च नहीं करते हैं तो आप अपने पैरों को गोली मार नहीं पाएंगे"। कुछ असुरक्षित होने की अनुमति देने के लिए और कारण होंगे –