forward_list容器
forward_list
forward_list(單向鏈表)序列容器,允許在序列中任何地方進(jìn)行恒定的時(shí)間插入和擦除操作。
forward_list(單向鏈表)被實(shí)現(xiàn)為單鏈表; 單鏈表可以將它們包含的每個(gè)元素存儲(chǔ)在不同和不相關(guān)的存儲(chǔ)位置中。通過關(guān)聯(lián)到序列中下一個(gè)元素的鏈接的每個(gè)元素來保留排序。forward_list容器和列表
之間的主要設(shè)計(jì)區(qū)別容器是第一個(gè)內(nèi)部只保留一個(gè)到下一個(gè)元素的鏈接,而后者每個(gè)元素保留兩個(gè)鏈接:一個(gè)指向下一個(gè)元素,一個(gè)指向前一個(gè)元素,允許在兩個(gè)方向上有效的迭代,但是每個(gè)元素消耗額外的存儲(chǔ)空間并且插入和移除元件的時(shí)間開銷略高。因此,forward_list對象比列表對象更有效率,盡管它們只能向前迭代。
與其他基本的標(biāo)準(zhǔn)序列容器(array,vector和deque),forward_list通常在插入,提取和移動(dòng)容器內(nèi)任何位置的元素方面效果更好,因此也適用于密集使用這些元素的算法,如排序算法。
的主要缺點(diǎn)修飾符Modifiers S和列表相比這些其它序列容器s是說,他們?nèi)狈梢酝ㄟ^位置的元素的直接訪問; 例如,要訪問forward_list中的第六個(gè)元素,必須從開始位置迭代到該位置,這需要在這些位置之間的線性時(shí)間。它們還消耗一些額外的內(nèi)存來保持與每個(gè)元素相關(guān)聯(lián)的鏈接信息(這可能是大型小元素列表的重要因素)。
該修飾符Modifiersclass模板的設(shè)計(jì)考慮到效率:按照設(shè)計(jì),它與簡單的手寫C型單鏈表一樣高效,實(shí)際上是唯一的標(biāo)準(zhǔn)容器,為了效率的考慮故意缺少尺寸成員函數(shù):由于其性質(zhì)作為一個(gè)鏈表,具有一個(gè)需要一定時(shí)間的大小的成員將需要它保持一個(gè)內(nèi)部計(jì)數(shù)器的大小(如列表所示)。這會(huì)消耗一些
總結(jié)
以上是生活随笔為你收集整理的forward_list容器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建行卡单向冻结什么意思
- 下一篇: 为什么工行融E借突然关闭了