OpenCV 4.11.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 |
实际缓冲区的大小 | |
自动分配缓冲区类。
此类用于函数和方法中的临时缓冲区。如果临时缓冲区通常很小(几 KB 的内存),但其大小取决于参数,那么在栈上创建一个小的固定大小的数组并在其足够大的情况下使用它是有意义的。如果所需的缓冲区大小大于固定大小,则会动态分配另一个足够大的缓冲区,并在处理后释放它。因此,在典型情况下,当缓冲区大小较小时,不会产生与 malloc()/free() 相关的开销。同时,处理数据的大小也没有限制。
这就是 AutoBuffer 的作用。该模板采用 2 个参数 - 缓冲区元素的类型和栈分配元素的数量。以下是类的使用方法
_Tp cv::AutoBuffer< _Tp, fixed_size >::value_type |
cv::AutoBuffer< _Tp, fixed_size >::AutoBuffer | ( | ) |
默认构造函数
|
explicit |
接收实际缓冲区大小的构造函数
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 足够小,则使用栈分配的缓冲区
|
内联 |
返回指向实际缓冲区的指针,该指针可以是栈分配的或堆分配的
|
内联 |
返回指向实际缓冲区的只读指针,该指针可以是栈分配的或堆分配的
void cv::AutoBuffer< _Tp, fixed_size >::deallocate | ( | ) |
如果缓冲区是动态分配的,则释放缓冲区
|
内联 |
返回指向实际缓冲区的指针,该指针可以是栈分配的或堆分配的
|
内联 |
返回指向实际缓冲区的只读指针,该指针可以是栈分配的或堆分配的
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
|
保护 |
实际缓冲区的大小