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

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

#include <tree.h>

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

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

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

Public メソッド

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

Private メソッド

void down_front ()
void down_back ()
void up ()
void bottom_back ()
 下がれるところまで下がる


フレンド

class tree

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


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

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

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

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

00536 {}

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

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

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


関数

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

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

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

00528                                                  {
00529                     BOOST_ASSERT( cur_ && self() );
00530                     return const_pre_order_iterator( self()->begin() );
00531                 }

関数の呼び出しグラフ:

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

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

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

参照先 gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::down_back(), と gslib::sapling::tree< Value, Allocator >::has_child().

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

00484                                    {
00485                     while ( has_child( cur_ ) ) {
00486                         down_back();
00487                     }
00488                 }

関数の呼び出しグラフ:

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

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

参照先 gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::bottom_back(), gslib::sapling::tree< Value, Allocator >::is_begin(), gslib::sapling::tree< Value, Allocator >::is_root(), gslib::sapling::tree< Value, Allocator >::is_root_end(), と gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::up().

00505                                  {
00506                     if ( false == is_root_end( cur_ ) && ( is_root( cur_ ) || is_begin( cur_ ) ) ) {
00507                         up();
00508                     } else {
00509                         iterator_base::link_prev();
00510                         bottom_back();
00511                     }
00512                 }

関数の呼び出しグラフ:

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

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

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

参照元 gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::bottom_back().

00474                                  {
00475                     cur_ = self()->end()->prev();
00476                 }

関数の呼び出しグラフ:

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

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

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

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

00470                                   {
00471                     cur_ = self()->begin();
00472                 }

関数の呼び出しグラフ:

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

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

00533                                                {
00534                     return *this;
00535                 }

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

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

参照先 gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::down_front(), gslib::sapling::tree< Value, Allocator >::has_child(), gslib::sapling::tree< Value, Allocator >::is_end(), gslib::sapling::tree< Value, Allocator >::is_root_end(), と gslib::sapling::tree< Value, Allocator >::const_pre_order_iterator::up().

00490                                  {
00491                     if ( is_root_end( cur_ ) ) {
00492                         iterator_base::link_next();
00493                     } else if ( has_child( cur_ ) ) {
00494                         down_front();
00495                     } else {
00496                         iterator_base::link_next();
00497                         while ( false == is_root_end( cur_ ) && is_end( cur_ ) ) {
00498                             //  終端である限り上がり続ける
00499                             up();
00500                             iterator_base::link_next();
00501                         }
00502                     }
00503                 }

関数の呼び出しグラフ:

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

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

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

00518                                                 {
00519                     BOOST_ASSERT( cur_ && self() );
00520                     return const_pre_order_iterator( self()->next() );
00521                 }

関数の呼び出しグラフ:

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

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

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

00513                                                   {
00514                     BOOST_ASSERT( cur_ && self() );
00515                     return const_pre_order_iterator( get_parent( cur_ ) );
00516                 }

関数の呼び出しグラフ:

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

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

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

00523                                                 {
00524                     BOOST_ASSERT( cur_ && self() );
00525                     return const_pre_order_iterator( self()->prev() );
00526                 }

関数の呼び出しグラフ:

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

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

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

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

00477                           {
00478                     cur_ = get_parent( cur_ );
00479                 }

関数の呼び出しグラフ:


フレンドと関連する関数

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

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

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


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