データ構造 | Public 型 | Public メソッド | Protected メソッド | Protected 変数
クラス テンプレート mist::array< T, Allocator >

要素数が可変の1次元配列 [詳細]

#include <mist.h>

+ mist::array< T, Allocator >に対する継承グラフ

データ構造

struct  rebind
 データ型の変換を行う [詳細]

Public 型

typedef Allocator allocator_type
 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 * となる
typedef mist_iterator1< T,
ptrdiff_t, pointer, reference
iterator
 MISTのコンテナ内を操作する,STLで言う順方向のランダムアクセスイテレータ
typedef mist_iterator1< T,
ptrdiff_t, const_pointer,
const_reference
const_iterator
 MISTのコンテナ内を操作する,順方向のランダムアクセスイテレータのコンスト版
typedef mist_reverse_iterator
< mist_iterator1< T, ptrdiff_t,
pointer, reference > > 
reverse_iterator
 MISTのコンテナ内を操作する,逆方向のランダムアクセスイテレータ
typedef mist_reverse_iterator
< mist_iterator1< T, ptrdiff_t,
const_pointer, const_reference > > 
const_reverse_iterator
 MISTのコンテナ内を操作する,逆方向のランダムアクセスイテレータのコンスト版

Public メソッド

bool resize (size_type num, size_type=0, size_type=0)
 コンテナ内の要素数を変更する
bool trim (array &out, size_type index, difference_type num=-1) const
 コンテナ内の要素をトリミングする
bool trim (size_type index, difference_type num=-1)
 コンテナ内の要素をトリミングする
bool swap (array &a)
 コンテナ内の全ての内容を入れ替える.
void clear ()
 コンテナの要素を空にする
void fill ()
 コンテナ内のデータ要素をデフォルト値で初期化する
void fill (const value_type &val)
 コンテナ内のデータ要素を指定された値で初期化する
bool empty () const
 コンテナが空かどうかを判定
size_type size () const
 コンテナに格納されているデータ数を返す
size_type size1 () const
 X軸方向のコンテナに格納されているデータ数を返す
size_type size2 () const
 Y軸方向のコンテナに格納されているデータ数を返す(常に1を返す)
size_type size3 () const
 Z軸方向のコンテナに格納されているデータ数を返す(常に1を返す)
size_type width () const
 X軸方向のコンテナに格納されているデータ数を返す
size_type height () const
 Y軸方向のコンテナに格納されているデータ数を返す(常に1を返す)
size_type depth () const
 Z軸方向のコンテナに格納されているデータ数を返す(常に1を返す)
double reso1 (double)
 X軸方向の解像度を返す
double reso1 () const
 X軸方向の解像度を設定する
double reso2 (double)
 Y軸方向の解像度を返す
double reso2 () const
 Y軸方向の解像度を設定する
double reso3 (double)
 Z軸方向の解像度を返す
double reso3 () const
 Z軸方向の解像度を設定する)
size_type byte () const
 コンテナ内の要素が占めるデータ量をバイト単位で返す
bool is_memory_shared () const
 外部で割り当てられたメモリ領域を使用しているかどうか
iterator begin ()
 コンテナの先頭を指すランダムアクセスイテレータを返す
const_iterator begin () const
 コンテナの先頭を指すコンスト型のコンテナを操作するランダムアクセスイテレータを返す
iterator end ()
 コンテナの末尾を指すランダムアクセスイテレータを返す
const_iterator end () const
 コンテナの末尾を指すコンスト型のコンテナを操作するランダムアクセスイテレータを返す
reverse_iterator rbegin ()
 コンテナの末尾を指す逆方向ランダムアクセスイテレータを返す
const_reverse_iterator rbegin () const
 コンテナの末尾を指すコンスト型のコンテナを操作する逆方向ランダムアクセスイテレータを返す
reverse_iterator rend ()
 コンテナの先頭を指す逆方向ランダムアクセスイテレータを返す
const_reverse_iterator rend () const
 コンテナの先頭を指すコンスト型のコンテナを操作する逆方向ランダムアクセスイテレータを返す
size_type max_size () const
 使用しているアロケータが確保可能なメモリの最大値を返す
template<class TT , class AAlocator >
const arrayoperator= (const array< TT, AAlocator > &o)
 要素の型が異なるコンテナを代入する
const arrayoperator= (const array &o)
 要素の型が異なるコンテナを代入する
reference at (size_type index, size_type dmy1=0, size_type dmy2=0)
 index で示される位置の要素の参照を返す
const_reference at (size_type index, size_type dmy1=0, size_type dmy2=0) const
 index で示される位置の要素の const 参照を返す
reference operator() (size_type index, size_type dmy1=0, size_type dmy2=0)
 index で示される位置の要素の参照を返す
const_reference operator() (size_type index, size_type dmy1=0, size_type dmy2=0) const
 index で示される位置の要素の const 参照を返す
reference operator[] (size_type index)
 index で示される位置の要素の参照を返す
const_reference operator[] (size_type index) const
 index で示される位置の要素の const 参照を返す
 array ()
 ディフォルトコンストラクタ.要素数 0 のコンテナを作成する
 array (const Allocator &a)
 アロケータ a のコピーを利用する
 array (size_type num)
 要素数 num 個のコンテナを作成し,デフォルト値で要素を初期化する
 array (size_type num, const Allocator &a)
 要素数 num 個のコンテナを作成し,アロケータ a のコピーを利用する
 array (size_type num, const value_type &val)
 要素数 num 個のコンテナを作成し,値 val で初期化する
 array (size_type num, const value_type &val, const Allocator &a)
 要素数 num 個のコンテナを作成し,値 val で初期化し,アロケータ a のコピーを利用する
 array (const_iterator s, const_iterator e)
 イテレータ s と e の範囲の値を用いて,配列を初期化する
 array (const_iterator s, const_iterator e, const Allocator &a)
 イテレータ s と e の範囲の値を用いて,配列を初期化し,アロケータ a のコピーを利用する
 array (size_type num, pointer ptr, size_type mem_available)
 ptr が指すメモリ領域に,要素数 num 個のコンテナを作成する(ptr が指す先の利用可能なメモリ量は mem_available )
 array (size_type num, const value_type &val, pointer ptr, size_type mem_available)
 ptr が指すメモリ領域に,要素数 num 個のコンテナを作成し値 val で初期化する(ptr が指す先の利用可能なメモリ量は mem_available )
template<class TT , class AAlocator >
 array (const array< TT, AAlocator > &o)
 他の array 配列で要素の型が異なるものから同じ要素数の配列を作成する
 array (const array< T, Allocator > &o)
 他の array 配列で同じ要素型のものを用いて初期化する
 ~array ()
 コンテナが利用しているリソースを全て開放する

Protected メソッド

pointer paccess (size_type index)
 index で示される位置の要素のポインタを返す
const_pointer paccess (size_type index) const
 index で示される位置の要素の const ポインタを返す

Protected 変数

mist_allocator< T, Allocator > allocator_
 各コンテナで利用するアロケータオブジェクト
T * data_
 コンテナで扱うデータの先頭を表すポインタ

説明

template<class T, class Allocator = std::allocator< T >>
class mist::array< T, Allocator >

要素数が可変の1次元配列

全てのMISTコンテナの基本となるクラス (mist/mist.h をインクルードする)

引数
T… MISTのコンテナ内に格納するデータ型
Allocator… MISTコンテナが利用するアロケータ型.省略した場合は,STLのデフォルトアロケータを使用する

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

template<class T, class Allocator = std::allocator< T >>
template<class TT , class AAlocator >
mist::array< T, Allocator >::array ( const array< TT, AAlocator > &  o)
inline

他の array 配列で要素の型が異なるものから同じ要素数の配列を作成する

注意
異なる要素型間でデータの変換が可能でなくてはならない

関数

template<class T, class Allocator = std::allocator< T >>
reference mist::array< T, Allocator >::at ( size_type  index,
size_type  dmy1 = 0,
size_type  dmy2 = 0 
)
inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
[in]dmy1… 使用しない
[in]dmy2… 使用しない
戻り値
指定された要素を示す参照

mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, mist::array3< ivector_type >, mist::array2< T, Allocator >, mist::array2< coefficients >, mist::array2< value_type >, mist::array2< unsigned int >, mist::array2< vector_type, std::allocator< vector_type > >, mist::array2< value_type, std::allocator< value_type > >, mist::array2< ivector_type, std::allocator< ivector_type > >, と mist::bitmap< BITS, Allocator >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
const_reference mist::array< T, Allocator >::at ( size_type  index,
size_type  dmy1 = 0,
size_type  dmy2 = 0 
) const
inline

index で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
[in]dmy1… 使用しない
[in]dmy2… 使用しない
戻り値
指定された要素を示す const 参照

mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, mist::array3< ivector_type >, mist::array2< T, Allocator >, mist::array2< coefficients >, mist::array2< value_type >, mist::array2< unsigned int >, mist::array2< vector_type, std::allocator< vector_type > >, mist::array2< value_type, std::allocator< value_type > >, mist::array2< ivector_type, std::allocator< ivector_type > >, と mist::bitmap< BITS, Allocator >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
iterator mist::array< T, Allocator >::begin ( )
inline

コンテナの先頭を指すランダムアクセスイテレータを返す

   @code 順方向ランダムアクセスイテレータの使用例

std::cout << "順方向ランダムアクセスイテレータ" << std::endl; mist::array< int >::iterator ite1 = a.begin( ); for( ; ite1 != a.end( ) ; ite1++ ) { std::cout << *ite1 << " "; } std::cout << std::endl << std::endl;

mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, と mist::array3< ivector_type >で再定義されています。

参照元 mist::emd(), と mist::extract_mesh().

template<class T, class Allocator = std::allocator< T >>
void mist::array< T, Allocator >::clear ( )
inline
template<class T, class Allocator = std::allocator< T >>
bool mist::array< T, Allocator >::empty ( ) const
inline

コンテナが空かどうかを判定

戻り値
true… コンテナの要素数が空(0)の場合
false… コンテナの要素数が空(0)でない場合

参照元 mist::canny(), mist::det(), mist::histogram::estimate_mixture(), mist::linear::filter(), mist::average::filter(), mist::linear::filter1d(), mist::harris(), mist::localColorChange(), mist::median(), mist::mode(), mist::multiply(), と mist::discriminant_analysis::threshold().

template<class T, class Allocator = std::allocator< T >>
void mist::array< T, Allocator >::fill ( )
inline

コンテナ内のデータ要素をデフォルト値で初期化する

デフォルトコンストラクタの値で初期化する. 組み込み型(int や double など)の場合は,全ての要素を0で初期化する.

参照元 mist::statistics::generate_histogram(), mist::multiply(), と mist::permutation_matrix().

template<class T, class Allocator = std::allocator< T >>
void mist::array< T, Allocator >::fill ( const value_type val)
inline

コンテナ内のデータ要素を指定された値で初期化する

全ての要素を値 val で初期化する.

引数
[in]val… 要素を初期化する値
template<class T, class Allocator = std::allocator< T >>
reference mist::array< T, Allocator >::operator() ( size_type  index,
size_type  dmy1 = 0,
size_type  dmy2 = 0 
)
inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
[in]dmy1… 使用しない
[in]dmy2… 使用しない
戻り値
指定された要素を示す参照

mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, mist::array3< ivector_type >, mist::array2< T, Allocator >, mist::array2< coefficients >, mist::array2< value_type >, mist::array2< unsigned int >, mist::array2< vector_type, std::allocator< vector_type > >, mist::array2< value_type, std::allocator< value_type > >, mist::array2< ivector_type, std::allocator< ivector_type > >, と mist::bitmap< BITS, Allocator >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
const_reference mist::array< T, Allocator >::operator() ( size_type  index,
size_type  dmy1 = 0,
size_type  dmy2 = 0 
) const
inline

index で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
[in]dmy1… 使用しない
[in]dmy2… 使用しない
戻り値
指定された要素を示す const 参照

mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, mist::array3< ivector_type >, mist::array2< T, Allocator >, mist::array2< coefficients >, mist::array2< value_type >, mist::array2< unsigned int >, mist::array2< vector_type, std::allocator< vector_type > >, mist::array2< value_type, std::allocator< value_type > >, mist::array2< ivector_type, std::allocator< ivector_type > >, と mist::bitmap< BITS, Allocator >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
template<class TT , class AAlocator >
const array& mist::array< T, Allocator >::operator= ( const array< TT, AAlocator > &  o)
inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する. コピー元とコピー先でデータ型(array< data > の data)が異なる場合の代入を行う. メモリの確保に失敗したら,空のコンテナとなる

引数
[in]o… コピー元のコンテナ
戻り値
自分自身
template<class T, class Allocator = std::allocator< T >>
const array& mist::array< T, Allocator >::operator= ( const array< T, Allocator > &  o)
inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する. メモリの確保に失敗したら,空のコンテナとなる

引数
[in]o… コピー元のコンテナ
戻り値
自分自身

mist::marray< array3< vector_type > >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
reference mist::array< T, Allocator >::operator[] ( size_type  index)
inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
戻り値
指定された要素を示す参照

mist::bitmap< BITS, Allocator >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
const_reference mist::array< T, Allocator >::operator[] ( size_type  index) const
inline

index で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
戻り値
指定された要素を示す const 参照

mist::bitmap< BITS, Allocator >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
pointer mist::array< T, Allocator >::paccess ( size_type  index)
inlineprotected

index で示される位置の要素のポインタを返す

引数
[in]index… コンテナ内の要素位置
戻り値
指定された要素を示すポインタ

参照元 mist::array< ivector_type, std::allocator< ivector_type > >::trim().

template<class T, class Allocator = std::allocator< T >>
const_pointer mist::array< T, Allocator >::paccess ( size_type  index) const
inlineprotected

index で示される位置の要素の const ポインタを返す

引数
[in]index… コンテナ内の要素位置
戻り値
指定された要素を示す const ポインタ
template<class T, class Allocator = std::allocator< T >>
reverse_iterator mist::array< T, Allocator >::rbegin ( )
inline

コンテナの末尾を指す逆方向ランダムアクセスイテレータを返す

   @code 逆方向ランダムアクセスイテレータの使用例

std::cout << "逆方向ランダムアクセスイテレータ" << std::endl; mist::array< int >::reverse_iterator ite2 = a.rbegin( ); for( ; ite2 != a.rend( ) ; ite2++ ) { std::cout << *ite2 << " "; } std::cout << std::endl;

mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, と mist::array3< ivector_type >で再定義されています。

template<class T, class Allocator = std::allocator< T >>
bool mist::array< T, Allocator >::resize ( size_type  num,
size_type  = 0,
size_type  = 0 
)
inline

コンテナ内の要素数を変更する

コンテナのサイズを num 個に変更する. 元のコンテナサイズと異なる場合は,自動的にサイズを調整する. 要素数が変更された場合のみ全ての要素の値はデフォルトコンストラクタで初期化される. また,組み込み型(int や double など)の場合は,全ての要素を0で初期化する.

注意
必ず要素を初期化するためには,fill 関数を利用してください.
引数
[in]num… リサイズ後のコンテナ内の要素数
[in]dmy1… ダミー変数(使用しない)
[in]dmy2… ダミー変数(使用しない)
戻り値
true… 正常にリサイズが終了
false… リサイズ後のメモリを確保できなかった場合

mist::marray< array3< vector_type > >, mist::array3< T, Allocator >, mist::array3< vector_type >, mist::array3< value_type >, mist::array3< ivector_type >, mist::array2< T, Allocator >, mist::array2< coefficients >, mist::array2< value_type >, mist::array2< unsigned int >, mist::array2< vector_type, std::allocator< vector_type > >, mist::array2< value_type, std::allocator< value_type > >, mist::array2< ivector_type, std::allocator< ivector_type > >, と mist::bitmap< BITS, Allocator >で再定義されています。

参照元 mist::integral_image< array< T, Allocator > >::construct_integral_array(), mist::dct(), mist::dst(), mist::emd(), mist::linear::filter(), mist::average::filter(), mist::statistics::hu_moments(), mist::idct(), mist::idst(), mist::nearest::interpolate(), mist::mean::interpolate(), mist::linear::interpolate(), mist::cubic::interpolate(), mist::BSpline::interpolate(), mist::sinc::interpolate(), mist::median(), mist::parcor(), と mist::array< ivector_type, std::allocator< ivector_type > >::trim().

template<class T, class Allocator = std::allocator< T >>
bool mist::array< T, Allocator >::swap ( array< T, Allocator > &  a)
inline

コンテナ内の全ての内容を入れ替える.

注意
どちらかのコンテナが外部メモリを利用している場合は,スワップは必ず失敗する

入れ替え元のコンテナ a の中身と全て入れ替える

引数
[in]a… 内容を入れ替える対象
戻り値
true… データのスワップに成功
false… データのスワップに失敗
template<class T, class Allocator = std::allocator< T >>
bool mist::array< T, Allocator >::trim ( array< T, Allocator > &  out,
size_type  index,
difference_type  num = -1 
) const
inline

コンテナ内の要素をトリミングする

メモリの確保に失敗したら,空のコンテナとなる

引数
[out]out… トリミング結果を格納するオブジェクト(サイズは自動で変更されます)
[in]index… トリミングの開始位置(ゼロから始まるインデックス)
[in]num… トリミング後の要素数(-1の場合は,最後までをコピーする)
戻り値
true… トリミングに成功した場合(元とサイズが変わらない場合も含む)
false… 不正なトリミングを行おうとした場合

参照元 mist::array< ivector_type, std::allocator< ivector_type > >::trim().

template<class T, class Allocator = std::allocator< T >>
bool mist::array< T, Allocator >::trim ( size_type  index,
difference_type  num = -1 
)
inline

コンテナ内の要素をトリミングする

メモリの確保に失敗したら,空のコンテナとなる

引数
[in]index… トリミングの開始位置(ゼロから始まるインデックス)
[in]num… トリミング後の要素数(-1の場合は,最後までをコピーする)
戻り値
true… トリミングに成功した場合(元とサイズが変わらない場合も含む)
false… 不正なトリミングを行おうとした場合

mist::array1< T, Allocator >, mist::array1< coefficients, std::allocator< coefficients > >, mist::array1< int >, mist::array1< unsigned int, std::allocator< unsigned int > >, mist::array1< vector_type, std::allocator< vector_type > >, mist::array1< value_type, std::allocator< value_type > >, と mist::array1< ivector_type, std::allocator< ivector_type > >で再定義されています。


このクラスの説明は次のファイルから生成されました:

Generated on Wed Nov 12 2014 19:44:29 for MIST by doxygen 1.8.1.2