stl - Why don't the standard C++ container adaptors provide a clear function? -


क्या कोई भी जानता है क्यों std :: queue, std :: stack, और std :: priority_queue स्पष्ट () सदस्य फ़ंक्शन? मुझे इस तरह एक नकली है:

  std :: queue & lt; int & gt; क्ष; // समय पास ... q = std :: queue & lt; int & gt; (); // स्पष्ट करने के बराबर ()  

IIRC, स्पष्ट () सब कुछ द्वारा प्रदान किया जाता है जो अंतर्निहित कंटेनर के रूप में काम कर सकता है क्या कंटेनर एडेप्टरों को इसे उपलब्ध कराने के लिए कोई अच्छा कारण नहीं है?

अच्छा, मुझे लगता है कि यह इसलिए है स्पष्ट एक कतार, एक प्राथमिकता_जेट या एक स्टैक (जिस तरह से, डेक और एडाप्टर नहीं है, लेकिन एक कंटेनर पर) एक मान्य ऑपरेशन नहीं माना गया था।

कंटेनर डेक के बजाय कंटेनर एडेप्टर कतार का उपयोग करने का एकमात्र कारण है कि यह स्पष्ट करता है कि आप केवल कतार संचालन कर रहे हैं, और कोई अन्य परिचालन नहीं है

तो एक कतार का उपयोग करते समय, आप सब कर सकते हैं पुश / पॉप तत्व; कतार समाशोधन को फीफो अवधारणा के उल्लंघन के रूप में देखा जा सकता है नतीजतन, यदि आपको अपनी कतार साफ करने की आवश्यकता है, तो शायद यह वास्तव में एक कतार नहीं है और आपको बेहतर डेक का उपयोग करना चाहिए।

हालांकि, चीजों की इस अवधारणा को थोड़ा संकीर्ण दिमाग है, और मुझे लगता है कि कतार साफ़ करना जैसा कि आप करते हैं वह उचित है।


Comments