Public 型 |
typedef Allocator | base |
| MISTコンテナが利用するアロケータ型
|
typedef Allocator::reference | reference |
| MISTのコンテナ内に格納するデータ型の参照.mist::array< data > の場合,data & となる
|
typedef Allocator::const_reference | const_reference |
| MISTのコンテナ内に格納するデータ型の const 参照.mist::array< data > の場合,const data & となる
|
typedef Allocator::value_type | value_type |
| MISTのコンテナ内に格納するデータ型.mist::array< data > の data と同じ
|
typedef Allocator::size_type | size_type |
| 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
|
typedef Allocator::difference_type | difference_type |
| 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
|
typedef Allocator::pointer | pointer |
| MISTのコンテナ内に格納するデータ型のポインター型.mist::array< data > の場合,data * となる
|
typedef Allocator::const_pointer | const_pointer |
| MISTのコンテナ内に格納するデータ型の const ポインター型.mist::array< data > の場合,const data * となる
|
Public メソッド |
pointer | allocate_objects (size_type num) |
| num 個のオブジェクトのメモリを確保し初期化を行う(組み込み型かどうかで内部の実装を分岐)
|
pointer | allocate_objects (size_type num, const_reference obj) |
| num 個のオブジェクトのメモリを確保し obj を用いて初期化を行う(組み込み型かどうかで内部の実装を分岐)
|
pointer | allocate_objects (const_pointer s, const_pointer e) |
| num 個のオブジェクトを確保し,ポインタで囲まれた間のデータで初期化する(組み込み型のデータの場合は memcpy を利用する)
|
void | deallocate_objects (pointer ptr, size_type num) |
| num 個のオブジェクトのメモリを開放し,デストラクタを呼び出す(組み込み型の場合はデストラクタは呼ばない)
|
pointer | copy_objects (const_pointer s, const_pointer e, pointer x) const |
| ポインタ s から e までの間のデータを x にコピーする
|
pointer | copy_objects (const_pointer ptr, size_type num, pointer to) const |
| ポインタ ptr から num 個のデータを to にコピーする
|
void | fill_objects (pointer ptr, size_type num, const_reference obj) const |
| ポインタ ptr から num 個のデータにobjを代入する
|
void | fill_objects (pointer ptr, size_type num) const |
| ポインタ ptr から num 個のデータに初期値を代入する
|
pointer | trim_objects (pointer ptr, size_type num, size_type dest_num) |
| ptr から始まり num 個存在するオブジェクトを dest_num 個まで縮め,全ての要素をデフォルトの値で初期化する
|
pointer | trim_objects (pointer ptr, size_type num, size_type dest_num, const_reference obj) |
| ptr から始まり num 個存在するオブジェクトを dest_num 個まで縮め,全ての要素を値 obj で初期化する
|
size_type | max_size () const |
| 使用しているアロケータが確保可能なメモリの最大値を返す
|
bool | is_memory_shared () const |
| 外部で割り当てられたメモリ領域を使用しているかどうか
|
const Allocator & | operator= (const Allocator &alloc) |
| 他のアロケータを代入する
|
const mist_allocator & | operator= (const mist_allocator &alloc) |
| 他のアロケータを代入する
|
| mist_allocator () |
| デフォルトコンストラクタ
|
| mist_allocator (pointer ptr, size_type mem_shared) |
| デフォルトコンストラクタ
|
| mist_allocator (const Allocator &alloc) |
| 他のアロケータを用いて初期化する
|
| mist_allocator (const mist_allocator &alloc) |
| 他のアロケータを用いて初期化する
|
template<class T, class Allocator>
class mist::mist_allocator< T, Allocator >
MIST内部でSTLのアロケータを効果的に利用するための仕組み
データの型によって,メモリ操作を区別し高速化を図っている
- 引数
-
T | … データ型 |
Allocator | … アロケータタイプ |