大约5年后我回到了C ++。我快点回顾一下。但是有一个我不知道的定义。
std::vector
是一个类模板。
typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<int, 4> Vec4i;
typedef Vec<int, 6> Vec6i;
typedef Vec<int, 8> Vec8i;
我不知道这些数字是多少?这是指字节吗?
来自core.hpp
。
/*!
A short numerical vector.
This template class represents short numerical vectors (of 1, 2, 3, 4 ... elements)
on which you can perform basic arithmetical operations, access individual elements using [] operator etc.
The vectors are allocated on stack, as opposite to std::valarray, std::vector, cv::Mat etc.,
which elements are dynamically allocated in the heap.
The template takes 2 parameters:
-# _Tp element type
-# cn the number of elements
In addition to the universal notation like Vec<float, 3>, you can use shorter aliases
for the most popular specialized variants of Vec, e.g. Vec3f ~ Vec<float, 3>.
*/
template<typename _Tp, int cn> class Vec : public Matx<_Tp, cn, 1>
答案 0 :(得分:2)
猜测,Vec
是一个表示N维数学向量的类模板,如下所示:
template <typename T, int N> class Vec { /* ... */ };
数字指定向量中的元素数量,即具有整数分量的2D矢量,具有整数分量的3D矢量等。
但没有代码,就无法说出来。