2012-03-24 1 views
1

リストの次の要素を取得するには、イテレータを増やすだけです。しかし、リストのどの要素からでも、リストの先頭に直接アクセスする方法はありますか?たとえば、イテレータがリストの3番目の要素を指している場合、反復処理のほかにリストの先頭に移動する方法はありますか?どこからでもヘッドにアクセスSTLリスト

おかげ

答えて

3

いいえ、std::listは、二重リンクリストをモデル化するために設計され(そして通常は1として実装される)、および二重リンクリストで、各要素のみで前と次の要素へのポインタを持っているのでリスト。

0

いいえ、ただ1つのイテレータに基づいているにすぎません。イテレータが有効かどうか、またイテレータを増減できるかどうかを知る方法はありません。

イテレータ(有効と推定される)をx.begin()x.end()と比較することで唯一の方法ですが、それらを取得したらリストのイテレータを既に持っていて問題は解決します。

イテレータは常に[first, last)のペアであると考えられ、コンテナはそのようなペアにbegin()/end()のメンバー関数を提供します。

関連する問題