我正在閱讀有關向量 push_back() 的 C Primer 并試圖理解以下陳述句。
每個實作都需要遵循一種策略,以確保使用 push_back 將元素添加到向量是有效的。從技術上講,通過在初始為空的向量上呼叫 push_back n 次來創建 n 元素向量的執行時間絕不能超過n的常數倍
我已經閱讀了很多關于此的資料結構,但只是不理解粗體斜體中的資料結構。不知道作者想說什么,尤其是“MULTIPLE”這個詞。
想知道如果 n=5,作者是否表示 5 的倍數(例如 5 或 10 或 15 等)?
感謝任何幫助。
uj5u.com熱心網友回復:
作者是說必須存在一個常數值c,這樣將n元素插入向量中的時間永遠不會超過c*n.
例如,c對于給定的元素型別,每個專案可能需要一微秒。在這種情況下,將100專案插入向量不會超過100微秒。
從技術上講,這并不完全是您所擁有的保證。通常沒有明顯的方法可以在真實系統上精確定義這樣的時間界限。如果元素型別的建構式中所需的時間不是恒定的,也可能會影響這種時間保證。
相反,該標準僅對元素執行操作的次數做出這樣的保證。因此,例如,如果向量的元素型別是型別別,則c可以是3每個元素,這意味著插入100元素最多會呼叫元素型別的建構式 300 次。
這意味著作為漸近界,而不是確定執行小值所需的實際時間n。
這個要求也被稱為個體的攤銷常數時間復雜度push_back。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/452519.html
上一篇:對或錯:對于無向圖,對于每個頂點,其具有最小權重的邊在最小生成樹中
下一篇:有問題的python游戲gui
