1. 程式人生 > >C++ STL 順序容器訪問最後一個元素的方法

C++ STL 順序容器訪問最後一個元素的方法

     遇到個需求,需要實現訪問list的最後一個元素,不想通過遍歷獲取(因為list可能很長)。於是尋找如何方便的訪問list的最後一個元素。C++ Primer上面沒有很明確的說明,只是說了迭代器 iterator的操作方法和範圍。範圍是[begin,end),操作有++,--。

    於是大膽嘗試iterator it = list.end();it--;竟然神奇的獲得了想要的結果。後來轉念一想,如果迭代器指向end,然後迭代器再++會怎麼樣?或者迭代器指向begin然後--會怎麼樣?測試了下,直接丟擲超出範圍異常。看來STL做的還挺嚴謹的。

    STL最好對這種用法作出說明,雖然很細節,但是很有用。

    最後簡單說下為什麼會有這個需求。需要用STL list實現環形連結串列,當連結串列中的第1個元素需要找其前任的時候。會發現找到是連結串列中的最後一個元素。

    這個故事告訴我們,實踐很重要,文件有時候不能概括全部細節。