メインページ | ネームスペース一覧 | クラス階層 | 構成 | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ

クラス gslib::sapling::tree< Value, Allocator >::const_post_order_iterator

#include <tree.h>

gslib::sapling::tree< Value, Allocator >::const_post_order_iteratorに対する継承グラフ

Inheritance graph
[凡例]
gslib::sapling::tree< Value, Allocator >::const_post_order_iteratorのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

void increment ()
void decrement ()
const_post_order_iterator parent ()
const_post_order_iterator next ()
const_post_order_iterator prev ()
const_post_order_iterator begin ()
const_post_order_iterator end ()
 const_post_order_iterator ()
 const_post_order_iterator (const value_holder *lnk)

Private メソッド

void down ()
void up ()
void bottom ()
 下がれるところまで下がる


フレンド

class tree

template<typename Value, typename Allocator = std::allocator< void >>
class gslib::sapling::tree< Value, Allocator >::const_post_order_iterator


コンストラクタとデストラクタ

template<typename Value, typename Allocator = std::allocator< void >>
gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::const_post_order_iterator  )  [inline]
 

tree.h457 行で定義されています。

参照元 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::begin(), gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::next(), gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::parent(), と gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::prev().

00457 {}

template<typename Value, typename Allocator = std::allocator< void >>
gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::const_post_order_iterator const value_holder lnk  )  [inline]
 

tree.h458 行で定義されています。

00458 : iterator_base( const_cast< value_holder* >( lnk ) ) {}


関数

template<typename Value, typename Allocator = std::allocator< void >>
const_post_order_iterator gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::begin  )  [inline]
 

tree.h449 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::const_post_order_iterator(), と gslib::sapling::tree< Value, Allocator >::iterator_base::self().

00449                                                   {
00450                     BOOST_ASSERT( cur_ && self() );
00451                     return const_post_order_iterator( self()->begin() );
00452                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::bottom  )  [inline, private]
 

下がれるところまで下がる

tree.h405 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::node::begin(), gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::down(), gslib::sapling::tree< Value, Allocator >::node::end(), と gslib::sapling::tree< Value, Allocator >::iterator_base::self().

参照元 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::increment().

00405                               {
00406                     while ( self()->begin() != self()->end() ) {
00407                         down();
00408                     }
00409                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::decrement  )  [inline]
 

tree.h425 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::is_begin(), gslib::sapling::tree< Value, Allocator >::is_root_end(), gslib::sapling::tree< Value, Allocator >::node::parent(), gslib::sapling::tree< Value, Allocator >::iterator_base::self(), と gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::up().

00425                                  {
00426                     while ( false == is_root_end( cur_ ) && is_begin( cur_ ) ) {
00427                         //  先頭である限り上がり続ける
00428                         up();
00429                     }
00430                     if ( 0 != self()->parent() ) {
00431                         iterator_base::link_prev();
00432                     }
00433                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::down  )  [inline, private]
 

tree.h395 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::node::begin(), と gslib::sapling::tree< Value, Allocator >::iterator_base::self().

参照元 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::bottom().

00395                             {
00396                     cur_ = self()->begin();
00397                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
const_post_order_iterator gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::end  )  [inline]
 

tree.h454 行で定義されています。

00454                                                 {
00455                     return *this;
00456                 }

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::increment  )  [inline]
 

tree.h411 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::bottom(), gslib::sapling::tree< Value, Allocator >::is_end(), gslib::sapling::tree< Value, Allocator >::is_root_end(), と gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::up().

00411                                  {
00412                     iterator_base::link_next();
00413                     if ( is_root_end( cur_ ) ) {
00414                         //  何もしない
00415                         return;
00416                     } else if ( is_end( cur_ ) ) {
00417                         //  終端まで来たので上がる
00418                         up();
00419                         return;
00420                     }
00421                     //  下がれるところまで下がる
00422                     bottom();
00423                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
const_post_order_iterator gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::next  )  [inline]
 

tree.h439 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::const_post_order_iterator(), と gslib::sapling::tree< Value, Allocator >::iterator_base::self().

00439                                                  {
00440                     BOOST_ASSERT( cur_ && self() );
00441                     return const_post_order_iterator( self()->next() );
00442                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
const_post_order_iterator gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::parent  )  [inline]
 

tree.h434 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::const_post_order_iterator(), gslib::sapling::tree< Value, Allocator >::get_parent(), と gslib::sapling::tree< Value, Allocator >::iterator_base::self().

00434                                                    {
00435                     BOOST_ASSERT( cur_ && self() );
00436                     return const_post_order_iterator( get_parent( cur_ ) );
00437                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
const_post_order_iterator gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::prev  )  [inline]
 

tree.h444 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::const_post_order_iterator(), と gslib::sapling::tree< Value, Allocator >::iterator_base::self().

00444                                                  {
00445                     BOOST_ASSERT( cur_ && self() );
00446                     return const_post_order_iterator( self()->prev() );
00447                 }

関数の呼び出しグラフ:

template<typename Value, typename Allocator = std::allocator< void >>
void gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::up  )  [inline, private]
 

tree.h398 行で定義されています。

参照先 gslib::sapling::tree< Value, Allocator >::get_parent().

参照元 gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::decrement(), と gslib::sapling::tree< Value, Allocator >::const_post_order_iterator::increment().

00398                           {
00399                     cur_ = get_parent( cur_ );
00400                 }

関数の呼び出しグラフ:


フレンドと関連する関数

template<typename Value, typename Allocator = std::allocator< void >>
friend class tree [friend]
 

gslib::sapling::tree< Value, Allocator >::iterator_baseを再定義しています。

tree.h402 行で定義されています。


このクラスの説明は次のファイルから生成されました:
saplingに対してSat Nov 27 15:04:15 2004に生成されました。 doxygen 1.3.6