我有严重的问题。
class Set
{
Point_<int> point;
int val;
double *module;
};
Mat m;
Set s;
m.push_back(s);
它说 请参阅正在编译的函数模板实例化'void cv :: Mat :: push_back(const _Tp&amp;)'的引用 当我在push_back之后添加时它带给我: 请参阅类模板实例化'cv :: Mat_&lt; _Tp&gt;'正在编制
答案 0 :(得分:1)
我承认我不熟悉OpenCV,但是来自this documentation的推理,push_back
类的Mat
成员函数似乎是一个模板函数,它需要知道你要“推回”的对象的类型。所以可能试试这个:
m.push_back<Set>(s);
如果不起作用,最后的建议是
Mat<Set> m;
Set s;
m.push_back(s);
答案 1 :(得分:1)
你可以写
#include<vector>
class Set
{
Point_<int> point;
int val;
double *module;
};
std::vector<Set> m;
Set s;
m.push_back(s);
答案 2 :(得分:0)
我认为你不能推送任何不是OpenCV原始类型的东西。为什么不使用STL容器?