स्कॉट मेयर्स द्वारा प्रभावी STL को देखें। यह समझाने में अच्छा है कि एसटीएल का उपयोग कैसे किया जाए।
यदि आप वस्तुओं की एक निर्धारित / अनिर्धारित संख्या को संग्रहीत करना चाहते हैं और आप कभी भी किसी को हटाने नहीं जा रहे हैं, तो एक वेक्टर वह है जो आप चाहते हैं। यह सी सरणी के लिए डिफ़ॉल्ट प्रतिस्थापन है, और यह एक की तरह काम करता है, लेकिन अतिप्रवाह नहीं करता है। आप इसका आकार पहले से आरक्षित () के साथ निर्धारित कर सकते हैं।
यदि आप एक अनिर्धारित संख्या की वस्तुओं को संग्रहीत करना चाहते हैं, लेकिन आप उन्हें जोड़ रहे हैं और उन्हें हटा रहे हैं, तो आप शायद एक सूची चाहते हैं ... क्योंकि आप किसी भी निम्नलिखित तत्वों को स्थानांतरित किए बिना एक तत्व को हटा सकते हैं - वेक्टर के विपरीत। यह एक वेक्टर की तुलना में अधिक मेमोरी लेता है, हालांकि, और आप क्रमिक रूप से एक तत्व तक नहीं पहुंच सकते हैं।
यदि आप तत्वों का एक गुच्छा लेना चाहते हैं और उन तत्वों के केवल अद्वितीय मूल्यों को ढूंढना चाहते हैं, तो उन सभी को एक सेट में पढ़ना यह कर देगा, और यह उन्हें आपके लिए भी छाँटेगा।
यदि आपके पास बहुत सारे कुंजी-मूल्य जोड़े हैं, और आप उन्हें कुंजी द्वारा सॉर्ट करना चाहते हैं, तो एक मानचित्र उपयोगी है ... लेकिन यह केवल प्रति कुंजी एक मान रखेगा। यदि आपको प्रति कुंजी एक से अधिक मान की आवश्यकता है, तो आपके पास नक्शे में आपके मूल्य के रूप में एक वेक्टर / सूची हो सकती है, या एक मल्टीमैप का उपयोग कर सकता है।
यह एसटीएल में नहीं है, लेकिन यह एसटीएल के लिए टीआर 1 अपडेट में है: यदि आपके पास बहुत सारे कुंजी-मूल्य जोड़े हैं जो आप कुंजी द्वारा देखने जा रहे हैं, और आप उनके आदेश की परवाह नहीं करते हैं, तो आप हो सकते हैं एक हैश का उपयोग करना चाहते हैं - जो tr1 :: unordered_map है। मैंने इसे विजुअल C ++ 7.1 के साथ उपयोग किया है, जहां इसे stdext :: hash_map कहा गया। इसमें नक्शे के लिए O (log n) के लुक के बजाय O (1) का लुकअप है।