OpenCV 4.5.3(日本語機械翻訳)
公開型 | 公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
cv::AutoBuffer< _Tp, fixed_size > クラステンプレート

Automatically Allocated Buffer Class [詳解]

#include <utility.hpp>

公開型

typedef _Tp value_type

公開メンバ関数

AutoBuffer ()
デフォルトコンストラクタ
AutoBuffer (size_t _size)
本当のバッファサイズを受け取るコンストラクタ
AutoBuffer (const AutoBuffer< _Tp, fixed_size > &buf)
コピーコンストラクタ
AutoBuffer< _Tp, fixed_size > & operator= (const AutoBuffer< _Tp, fixed_size > &buf)
代入演算子
~AutoBuffer ()
デストラクタ。deallocate()
void allocate (size_t _size)
サイズ _size の新しいバッファを確保します。_size が十分小さい場合は、スタックに割り当てられたバッファが使用されます。
void deallocate ()
バッファが動的に割り当てられた場合は,そのバッファを解放します.
void resize (size_t _size)
バッファのサイズを変更し,コンテンツを保存します。
size_t size () const
現在のバッファサイズを返します。
_Tp * data ()
スタックに割り当てられた,あるいはヒープに割り当てられた実際のバッファへのポインタを返します。
const _Tp * data () const
スタック割り当てまたはヒープ割り当てされた実際のバッファへの読み取り専用のポインタを返します。
operator _Tp * ()
スタックに割り当てられた,あるいはヒープに割り当てられた実際のバッファへのポインタを返します。
operator const _Tp * () const
スタック割り当てまたはヒープ割り当てされた実際のバッファへの読み取り専用のポインタを返します。

限定公開変数類

_Tp * ptr
実際のバッファへのポインタ。バッファが十分に小さい場合は buf を指すこともあります。
size_t sz
リアルバッファのサイズ
_Tp buf [(fixed_size > 0) ? fixed_size :1]
事前に割り当てられたバッファ。C++標準の要件を確認するために、少なくとも1つの要素

詳解

template<typename _Tp, size_t fixed_size = 1024/sizeof(_Tp)+8>
クラス cv::AutoBuffer< _Tp, fixed_size > 。

自動的に割り当てられるバッファクラス

このクラスは,関数やメソッド内の一時的なバッファに利用されます.一時的なバッファは通常小さく(数Kのメモリ),そのサイズがパラメータに依存する場合,スタック上に小さな固定サイズの配列を作成し,十分な大きさがあればそれを利用することは理にかなっています.必要なバッファサイズが固定サイズよりも大きい場合は、十分なサイズの別のバッファが動的に割り当てられ、処理後に解放されます。したがって,バッファサイズが小さい典型的なケースでは,malloc()/free()に伴うオーバーヘッドはありません。同時に、処理されるデータのサイズにも制限がありません。

これはAutoBufferが行うことです.このテンプレートは,2つのパラメータを受け取ります - バッファ要素のタイプと,スタックに割り当てられた要素の数です。このクラスの使い方は以下の通りです。

void my_func(const cv::Mat& m)
{
cv::AutoBuffer<float> buf(1000); // create automatic buffer containing 1000 floats
buf.allocate(m.rows); // if m.rows <= 1000, the pre-allocated buffer is used,
// otherwise the buffer of "m.rows" floats will be allocated
// dynamically and deallocated in cv::AutoBuffer destructor
...
}
Automatically Allocated Buffer Class
Definition: utility.hpp:102
_Tp buf[(fixed_size > 0) ? fixed_size :1]
pre-allocated buffer. At least 1 element to confirm C++ standard requirements
Definition: utility.hpp:150
n-dimensional dense array class
Definition: mat.hpp:802
int rows
the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions
Definition: mat.hpp:2107

このクラス詳解は次のファイルから抽出されました: