ऐसा कहा जाता है कि एक वेक्टर (जैसा कि इसके सभी तत्वों को पढ़ना है) के माध्यम से अनुकूलित करना कैश की वजह से एक सूची के माध्यम से तेज़ होने से तेज़ है।std :: सूची बनाम std :: वेक्टर पुनरावृत्ति
क्या वेब पर कोई रिसोर्स है जो यह दर्शाता है कि यह प्रदर्शन को कितना प्रभावित करता है?
साथ ही, क्या एक कस्टम लिंक्ड सूची का उपयोग करना बेहतर होगा, जिनके तत्वों को प्रीलाइक्टेड किया जाएगा ताकि वे स्मृति में लगातार हों?
इसके पीछे विचार यह है कि मैं तत्वों को एक निश्चित क्रम में स्टोर करना चाहता हूं जो बदलेगा नहीं। मुझे अभी भी मिडल में रन टाइम पर कुछ डालने में सक्षम होना चाहिए, लेकिन उनमें से अधिकतर अभी भी लगातार बने रहेंगे, क्योंकि ऑर्डर नहीं बदलेगा।
क्या तथ्य यह है कि तत्व लगातार लगातार कैश में प्रभाव डालते हैं, या क्योंकि मैं ++list_element
के बजाय list_element->next
पर कॉल करूंगा, इससे कुछ भी सुधार नहीं होता है?
"इसके अलावा, यह एक कस्टम लिंक्ड सूची का उपयोग करने के लिए बेहतर हो सकता है, जिसे तत्व इतना है कि वे स्मृति में लगातार कर रहे हैं prealocated किया जाएगा?" आप एक वेक्टर मतलब है? –
@LuchianGrigore यह एक वेक्टर के रूप में काफी नहीं होगा, यदि आप बीच में एक तत्व डालना चाहते हैं, तो आपको बस कुछ पॉइंटर्स बदलना होगा। –
'std :: list' के लिए मुख्य आवश्यकता यह है कि सूची में किसी भी स्थान से एकल तत्वों को सम्मिलित करना और हटाने का निरंतर समय होना चाहिए। स्मृति में निरंतर तत्व होने के साथ यह असंगत है। – juanchopanza