#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(). |
|
|||||
1.3.6