リストの次の要素を取得するには、イテレータを増やすだけです。しかし、リストのどの要素からでも、リストの先頭に直接アクセスする方法はありますか?たとえば、イテレータがリストの3番目の要素を指している場合、反復処理のほかにリストの先頭に移動する方法はありますか?どこからでもヘッドにアクセスSTLリスト
おかげ
リストの次の要素を取得するには、イテレータを増やすだけです。しかし、リストのどの要素からでも、リストの先頭に直接アクセスする方法はありますか?たとえば、イテレータがリストの3番目の要素を指している場合、反復処理のほかにリストの先頭に移動する方法はありますか?どこからでもヘッドにアクセスSTLリスト
おかげ
いいえ、std::list
は、二重リンクリストをモデル化するために設計され(そして通常は1として実装される)、および二重リンクリストで、各要素のみで前と次の要素へのポインタを持っているのでリスト。
いいえ、ただ1つのイテレータに基づいているにすぎません。イテレータが有効かどうか、またイテレータを増減できるかどうかを知る方法はありません。
イテレータ(有効と推定される)をx.begin()
とx.end()
と比較することで唯一の方法ですが、それらを取得したらリストのイテレータを既に持っていて問題は解決します。
イテレータは常に[first, last)
のペアであると考えられ、コンテナはそのようなペアにbegin()/end()
のメンバー関数を提供します。