2013-05-13 13 views
13

article at cppreference.com बताता है कि std::vector::shrink_to_fit की जटिलता निरंतर है। जहां तक ​​मुझे पता है कि तत्व केवल स्थानांतरित नहीं होने पर ही संभव है, क्योंकि यदि वे हैं तो जटिलता n है। यह भी कहता है कि पिछले इटेटरेटर समेत सभी इटरेटर संभावित रूप से अमान्य हैं। जिसका अर्थ है कि तत्वों की गति एक अच्छी तरह परिभाषित संभावना है।सी ++ 11: std :: vector :: shrink_to_fit जटिलता

क्या आलेख दोषपूर्ण है? ... या क्या कोई जादू है जिसे मैं नहीं जानता?

+1

(लेख तेजी से तय किया गया था तो प्रारंभिक वक्तव्य अब गलत है।।) – Notinlist

उत्तर

16

लेख दोषपूर्ण था, मैंने इसे ठीक किया।

आधिकारिक मानक std::vector::shrink_to_fit की जटिलता के बारे में कुछ नहीं कहा है, N3376 में वे शब्दों को बदल दिया है, जिससे डॉ 2033 फिक्सिंग:

23.3.6.3:

void shrink_to_fit();

की आवश्यकता है: TMoveInsertable*this में होगा।

जटिलता: अनुक्रम के आकार में रैखिक।

+0

आप किसी ऐसे ड्राफ़्ट के हवाले से किया जा सकता है - 'बारे में std :: वेक्टर :: shrink_to_fit सी ++ 11 मानक में कोई बात नहीं है() 'जटिलता। –

+0

@MichaelBurr: हाँ, उन्होंने इसे N3376 में बदल दिया। – Fanael

+0

मुझे लगता है - दिलचस्प है कि उन्होंने 'basic_string <> :: shrink_to_fit()' (अभी तक?) के लिए शब्द नहीं जोड़ा है। –