2012-03-24 28 views
1

爲了獲得列表中的下一個元素,只需要增加迭代器。然而,從列表中的任何元素,有沒有辦法直接到列表的頭部?例如,如果迭代器指向列表的第三個元素,除了反向迭代外,還有一種方法可以到達列表的前面嗎?從任意位置訪問頭部STL列表

感謝

回答

3

沒有,因爲std::list旨在模擬一個雙向鏈表(而且通常作爲一個實現),並在雙向鏈表,每個元素只指向一個和下一個元素列表。

0

不,你甚至不能僅僅基於一個迭代器來做它:你無法知道迭代器是否有效,以及你是否允許遞增或遞減它!

你可以做到這一點的唯一方法是通過比較你的迭代器(推測有效)到x.begin()x.end(),但是一旦你有了這些,你已經有了迭代器到列表頭,問題就變得沒有意義了。

迭代器應該總是被認爲是成對出現的[first, last),並且容器與它們的begin()/end()成員函數提供了這樣一對。