#include <list_node_pool.h>
gslib::static_container::abstruct_list_node_pool< Value >に対する継承グラフ
Public 型 | |
typedef list_link | link |
typedef list_node< Value > | node |
Public メソッド | |
virtual size_type | size () const=0 |
node * | allocate () |
メモリ領域の貸与のみ。value のコンストラクタ呼び出しは、ユーザーの責任。 | |
void | deallocate (link *first, link *last) |
デストラクタ呼び出しは行わない | |
void | deallocate (link *n) |
デストラクタ呼び出しは行わない | |
bool | full () const |
size_type | rest () const |
空きノード数取得 | |
Protected メソッド | |
abstruct_list_node_pool () | |
virtual node * | getTop ()=0 |
void | init () |
Private 変数 | |
link | free_ |
list_node_pool.h の 69 行で定義されています。
|
list_node_pool.h の 71 行で定義されています。 参照元 gslib::static_container::abstruct_list_node_pool< Value >::deallocate(), と gslib::static_container::abstruct_list_node_pool< Value >::rest(). |
|
list_node_pool.h の 72 行で定義されています。 参照元 gslib::static_container::abstruct_list_node_pool< Value >::allocate(), と gslib::static_container::abstruct_list_node_pool< Value >::init(). |
|
list_node_pool.h の 78 行で定義されています。
00078 { 00079 } |
|
メモリ領域の貸与のみ。value のコンストラクタ呼び出しは、ユーザーの責任。
list_node_pool.h の 98 行で定義されています。 参照先 gslib::static_container::abstruct_list_node_pool< Value >::free_, gslib::static_container::list_link::isolate(), gslib::static_container::list_link::next, と gslib::static_container::abstruct_list_node_pool< Value >::node.
|
関数の呼び出しグラフ:
|
デストラクタ呼び出しは行わない
list_node_pool.h の 133 行で定義されています。 参照先 gslib::static_container::abstruct_list_node_pool< Value >::deallocate(), gslib::static_container::abstruct_list_node_pool< Value >::link, と gslib::static_container::list_link::next.
00133 { 00134 deallocate( n, n->next ); 00135 } |
関数の呼び出しグラフ:
|
デストラクタ呼び出しは行わない
list_node_pool.h の 112 行で定義されています。 参照先 gslib::static_container::abstruct_list_node_pool< Value >::free_, gslib::static_container::abstruct_list_node_pool< Value >::link, gslib::static_container::list_link::next, と gslib::static_container::list_link::prev. 参照元 gslib::static_container::abstruct_list_node_pool< Value >::deallocate().
00112 { 00113 if ( first == last ) { 00114 return; 00115 } 00116 00117 // 「first の直前」と「last」を接続 00118 first->prev->next = last; 00119 link* lastPrev = last->prev; 00120 last->prev = first->prev; 00121 00122 // [ first, lastPrev ] を free_ の終端に接続 00123 first->prev = free_.prev; 00124 free_.prev->next = first; 00125 free_.prev = lastPrev; 00126 lastPrev->next = &free_; 00127 } |
|
list_node_pool.h の 142 行で定義されています。 参照先 gslib::static_container::abstruct_list_node_pool< Value >::free_, と gslib::static_container::list_link::next.
|
|
gslib::static_container::list_node_pool< Value, Size >を実装しています. 参照元 gslib::static_container::abstruct_list_node_pool< Value >::init(). |
|
list_node_pool.h の 82 行で定義されています。 参照先 gslib::static_container::abstruct_list_node_pool< Value >::free_, gslib::static_container::abstruct_list_node_pool< Value >::getTop(), gslib::static_container::list_link::next, gslib::static_container::abstruct_list_node_pool< Value >::node, gslib::static_container::list_link::prev, と gslib::static_container::abstruct_list_node_pool< Value >::size(). 参照元 gslib::static_container::list_node_pool< Value, Size >::list_node_pool().
00082 { 00083 // すべての要素を free_ に追加 00084 node* top = getTop(); 00085 free_.next = top; 00086 free_.prev = top + size() - 1; 00087 top->prev = &free_; 00088 free_.prev->next = &free_; 00089 for ( size_type i = 1; i < size(); ++i ) { 00090 top[ i - 1 ].next = &top[ i ]; 00091 top[ i ].prev = &top[ i - 1 ]; 00092 } 00093 } |
関数の呼び出しグラフ:
|
|
gslib::static_container::list_node_pool< Value, Size >を実装しています. 参照元 gslib::static_container::abstruct_list_node_pool< Value >::init(). |
|