टिप्पणी, स्पष्ट करने के लिए आधार पर, इन सबसे आम विकल्प हैं, लेकिन वांछित जटिलता और अन्य कारकों के आधार पर, इन कार्यान्वयन के समर्थन भिन्न हो सकते हैं:
Vector = गतिशील सरणी
सूची का आकार बदलने = Doubly Linked List
सेट = Red/Black Tree (संतुलित बाइनरी खोजें ट्री)
मुझे लगता है कि आप संभवतः ढेर और BSTs अप मिश्रण हो सकता है। एक ढेर को एक पेड़ के रूप में देखा जाता है, लेकिन यह वास्तव में एक अनुक्रमणीय सूची संरचना (जैसे सरणी या वेक्टर) के शीर्ष पर बनाया गया है। सी ++ एसटीएल में algorithm header के माध्यम से ढेर कार्यों को प्रदान करता है। बीएसटी कुशल कुंजीपटल के लिए उपयोग की जाने वाली कुंजी/मूल्य आधारित संरचना से अधिक होते हैं (जो आप आमतौर पर एक सेट के लिए चाहते हैं)।
स्रोत
2011-10-26 15:25:15
कार्यान्वयन परिभाषित किया गया है, लेकिन आम तौर पर, 'std :: vector' गतिशील रूप से आवंटित सरणी है। 'std :: list' एक दोगुनी लिंक्ड सूची है (सी ++ 11 'std :: forward_list' प्रस्तुत करता है जो एक सिंगल लिंक्ड सूची है), और' सेट 'आम तौर पर [लाल-काले पेड़ों] पर आधारित होता है (http://en.wikipedia.org/wiki/Red%E2%80%93black_tree), हालांकि मानक में परिभाषित इंटरफेस की अमूर्त जटिलता और व्यवहार आवश्यकताओं को फिट करने वाला कुछ भी स्वीकार्य कार्यान्वयन है। – birryree