(जब मैं एसटीएल कहता हूँ, मैं टेम्पलेट लायब्रेरी कि चारों ओर कंटेनर, iterators, एल्गोरिदम और functors घूमती है के बारे में बात कर रहा हूँ।)
इस सवाल के साथ, यह सोच कर एक सामान्य कंटेनर की तरह है कि एक std::string
ज्यादातर बर्ताव के बाद मन में आया begin
और end
कार्य (इटरेटर सहित), एक size
समारोह और संभावना सामान्य एसटीएल एल्गोरिदम कि कंटेनर पर काम के लिए उन सभी का उपयोग करने/उनकी iterators (जैसे transform
, sort
, find
, आदि) के माध्यम से होती है।एसटीएल का std :: स्ट्रिंग हिस्सा है?
हालांकि, यह एक कंटेनर स्वयं नहीं है, क्योंकि यह कंटेनरों की तस्वीर में फिट नहीं है जो आर्बिटरी डेटा स्टोर करते हैं। साथ ही, यह सदस्य कार्यों के माध्यम से अधिकतर निहित डेटा पर संचालित होता है, जैसे substr
, find_first_of
, आदि, जबकि वास्तविक कंटेनर ऐसा नहीं करते हैं और एल्गोरिदम इसे संभालते हैं।
इसके अतिरिक्त, cplusplus reference site और सी ++ मानक std::string
को वास्तविक कंटेनर के साथ सूचीबद्ध नहीं करता है, लेकिन एक अलग श्रेणी में।
हालांकि, SGI's STL site, basic_string
(और इसके परिणामस्वरूप string
टाइपपीफ) का उल्लेख अन्य कंटेनर के साथ किया गया है और basic_string
reference site बताता है कि यह "कंटेनर" श्रेणी से संबंधित है।
अब मेरा प्रश्न है, string
वास्तव में एसटीएल का हिस्सा है या यह एक अलग पुस्तकालय है?
और यदि यह अब एसटीएल से संबंधित है, तो क्या यह स्टेपानोव द्वारा विकसित मूल एसटीएल में भिन्न था?
ऐतिहासिक जिज्ञासा के अलावा, इस बिंदु पर एसटीएल की परवाह कौन करता है? – ildjarn
@ildjarn: ठीक है, मुझे ज्ञान जमा करना पसंद है। : पी भी, उस छोटे 'इतिहास' टैग को देखें? :) मुझे बस इस तरह की चीजों में दिलचस्पी है, इसलिए मैं इसके लिए पूछता हूं। – Xeo
आह, मेला, मुझे वास्तव में 'इतिहास' टैग नहीं मिला: -] – ildjarn