![]() |
OpenCV 4.12.0
開源計算機視覺
|
自動分配緩衝區類。 更多...
#include <opencv2/core/utility.hpp>
公共型別 | |
| typedef _Tp | value_type |
公共成員函式 | |
| AutoBuffer () | |
| 預設建構函式 | |
| AutoBuffer (const AutoBuffer< _Tp, fixed_size > &buf) | |
| 複製建構函式 | |
| AutoBuffer (size_t _size) | |
| 建構函式,接受實際緩衝區大小 | |
| ~AutoBuffer () | |
| 解構函式。呼叫 deallocate() | |
| void | allocate (size_t _size) |
| 分配大小為 _size 的新緩衝區。如果 _size 足夠小,則使用棧分配的緩衝區 | |
| _Tp * | data () |
| 返回指向實際緩衝區的指標,棧分配或堆分配 | |
| const _Tp * | data () const |
| 返回指向實際緩衝區的只讀指標,棧分配或堆分配 | |
| void | deallocate () |
| 如果緩衝區是動態分配的,則釋放它 | |
| operator _Tp * () | |
| 返回指向實際緩衝區的指標,棧分配或堆分配 | |
| operator const _Tp * () const | |
| 返回指向實際緩衝區的只讀指標,棧分配或堆分配 | |
| AutoBuffer< _Tp, fixed_size > & | operator= (const AutoBuffer< _Tp, fixed_size > &buf) |
| 賦值運算子 | |
| void | resize (size_t _size) |
| 調整緩衝區大小並保留內容 | |
| size_t | size () const |
| 返回當前緩衝區大小 | |
保護屬性 | |
| _Tp | buf [(fixed_size > 0) ? fixed_size :1] |
| 預分配緩衝區。至少 1 個元素以符合 C++ 標準要求 | |
| _Tp * | ptr |
| 指向實際緩衝區的指標,如果緩衝區足夠小,則可以指向 buf | |
| size_t | sz |
| 實際緩衝區的大小 | |
自動分配緩衝區類。
該類用於函式和方法中的臨時緩衝區。如果臨時緩衝區通常很小(幾 K 的記憶體),但其大小取決於引數,則在棧上建立一個小的固定大小的陣列並在其足夠大時使用它是有意義的。如果所需的緩衝區大小大於固定大小,則動態分配另一個足夠大小的緩衝區並在處理後釋放。因此,在典型情況下,當緩衝區大小較小時,沒有與 malloc()/free() 相關的開銷。同時,對處理的資料的大小沒有限制。
這就是 AutoBuffer 所做的。模板採用 2 個引數 - 緩衝區元素的型別和棧分配的元素數量。以下是該類的使用方式
| _Tp cv::AutoBuffer< _Tp, fixed_size >::value_type |
| cv::AutoBuffer< _Tp, fixed_size >::AutoBuffer | ( | ) |
預設建構函式
|
顯式 |
建構函式,接受實際緩衝區大小
| cv::AutoBuffer< _Tp, fixed_size >::AutoBuffer | ( | const AutoBuffer< _Tp, fixed_size > & | buf | ) |
複製建構函式
| cv::AutoBuffer< _Tp, fixed_size >::~AutoBuffer | ( | ) |
解構函式。呼叫 deallocate()
| void cv::AutoBuffer< _Tp, fixed_size >::allocate | ( | size_t | _size | ) |
分配大小為 _size 的新緩衝區。如果 _size 足夠小,則使用棧分配的緩衝區
|
inline |
返回指向實際緩衝區的指標,棧分配或堆分配
|
inline |
返回指向實際緩衝區的只讀指標,棧分配或堆分配
| void cv::AutoBuffer< _Tp, fixed_size >::deallocate | ( | ) |
如果緩衝區是動態分配的,則釋放它
|
inline |
返回指向實際緩衝區的指標,棧分配或堆分配
|
inline |
返回指向實際緩衝區的只讀指標,棧分配或堆分配
| AutoBuffer< _Tp, fixed_size > & cv::AutoBuffer< _Tp, fixed_size >::operator= | ( | const AutoBuffer< _Tp, fixed_size > & | buf | ) |
賦值運算子
| void cv::AutoBuffer< _Tp, fixed_size >::resize | ( | size_t | _size | ) |
調整緩衝區大小並保留內容
| size_t cv::AutoBuffer< _Tp, fixed_size >::size | ( | ) | const |
返回當前緩衝區大小
|
保護 |
預分配緩衝區。至少 1 個元素以符合 C++ 標準要求
|
保護 |
指向實際緩衝區的指標,如果緩衝區足夠小,則可以指向 buf
|
保護 |
實際緩衝區的大小