Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Mat类opencv中的begin()方法声明_C++_Opencv_Iterator - Fatal编程技术网

C++ Mat类opencv中的begin()方法声明

C++ Mat类opencv中的begin()方法声明,c++,opencv,iterator,C++,Opencv,Iterator,在查看使用begin()方法的opencv参考手册时,我得出了以下声明: template<typename _Tp> MatIterator_<_Tp> Mat::begin() template MatIterator\uumat::begin() 我不太擅长C++,我只是想知道“MaTror”是什么,以及“使用”的用法是什么?(C++中有特殊含义)< P> > C++中的下划线所附加的唯一含义是,如“代码”>“TP< >下划线,后面是另一个下划线或大写字母。

在查看使用begin()方法的opencv参考手册时,我得出了以下声明:

template<typename _Tp> MatIterator_<_Tp> Mat::begin()
template MatIterator\uumat::begin()

我不太擅长C++,我只是想知道“MaTror”是什么,以及“使用”的用法是什么?(C++中有特殊含义)

< P> > C++中的下划线所附加的唯一含义是,如“代码”>“TP< <代码> >下划线,后面是另一个下划线或大写字母。 尾随下划线(如
MatIterator
)通常用于表示类成员

从外观上看,MatIterator是一种类型,显然用作矩阵的迭代器

就整个宣言而言,它看起来是:

模板“”“返回类型*函数名*”(“函数参数”)

其中:

模板参数可以是
class
typename
,后跟任意名称(它也可以是非类型模板参数或模板模板参数,但我们不讨论它们,因为此代码既不使用它们也不使用它们)。当您实例化模板时,此名称将表示实例化模板的类型

返回类型只是函数返回的类型。在本例中,它取决于模板参数,因此它表示“对于某些类型
\u Tp
,这将返回一个名为
MatIterator
”的类型

函数名就是您正在定义的函数的名称。在本例中,它是一个成员函数,因此其形式为“class name::member name”


在这种情况下,函数参数是空的,所以我们也不讨论它。

你所说的实现是什么意思?你能解释一下这种声明中的每一个元素吗?我不能理解结构“实现”基本上是指“编译器和标准库”。换句话说,很有可能它真的不应该在这里被使用。