मैंने C ++ सूचियों और वैक्टर से जुड़े 3 अलग-अलग प्रयोग किए हैं।
वेक्टर के साथ वे अधिक कुशल साबित हुए, जब बीच में बहुत सारे सम्मिलन शामिल थे।
इसलिए सवाल: किस मामले में सूचियां वैक्टर से ज्यादा मायने रखती हैं?
यदि वैक्टर अधिकांश मामलों में अधिक कुशल लगते हैं, और यह विचार करते हुए कि उनके सदस्य एक जैसे हैं, तो सूचियों के लिए कौन से लाभ शेष हैं?
एन पूर्णांक उत्पन्न करें और उन्हें एक कंटेनर में रखें ताकि कंटेनर को छंटनी बनी रहे। सम्मिलन भोलेपन से किया गया है, तत्वों को एक-एक करके पढ़ना और पहले बड़े से पहले एक नया डालना।
एक सूची के साथ, समय छत से गुजरता है जब वैक्टर की तुलना में आयाम बढ़ता है।कंटेनर के अंत में एन पूर्णांक डालें।
सूचियों और वैक्टर के लिए, परिमाण के समान क्रम से समय बढ़ा, हालांकि यह वैक्टर के साथ 3 गुना तेज था।एक कंटेनर में एन पूर्णांक डालें।
टाइमर प्रारंभ करें।
सूचियों के लिए list.sort का उपयोग करके कंटेनर को सॉर्ट करें और वैक्टर के लिए std :: सॉर्ट करें। टाइमर बंद करो।
फिर से, परिमाण के उसी क्रम से समय बढ़ता है, लेकिन यह वैक्टर के साथ औसतन 5 गुना तेज है।
मैं परीक्षण करना जारी रख सकता हूं और कुछ उदाहरणों का पता लगाऊंगा जहां सूचियां बेहतर साबित होंगी।
लेकिन इस संदेश को पढ़ने वाले आप लोगों का संयुक्त अनुभव अधिक उत्पादक उत्तर प्रदान कर सकता है।
आप उन स्थितियों में आ सकते हैं जहाँ सूचियों का उपयोग करना अधिक सुविधाजनक था, या बेहतर प्रदर्शन किया?
listअगर आप तत्वों के बहुत सारे हटा रहे हैं शायद बेहतर है। मुझे विश्वास नहीं है कि vectorकभी भी सिस्टम में मेमोरी वापस आएगी जब तक कि पूरे वेक्टर को हटा नहीं दिया जाता। यह भी ध्यान रखें कि आपका परीक्षण # 1 सम्मिलन समय का परीक्षण नहीं कर रहा है। यह खोज और सम्मिलन के संयोजन की एक परीक्षा है। यह उस जगह को खोजने के लिए है जहां listधीमा है। वास्तविक आवेषण वेक्टर की तुलना में तेज़ होगा।