我有这样的结构:
struct MatInfo
{
cv::Mat mainImgMat;
cv::Mat roiMat;
CvRect roiRect;
int lineId;
bool doProcess;
QString plateString;
CvRect finalRect;
float cnf;
};
我想要一个这个结构的Qlist,它将成员添加到这样的插槽中:
addToList(Mat m, Mat ocrMat, CvRect plateRect, int lineId, bool doProcess)
{
if (_lst_MatInfo.size() < 30 && !ocrMat.empty())
{
MatInfo info;
info.mainImgMat = m;
info.roiMat = ocrMat;
info.roiRect = plateRect;
info.lineId = lineId;
info.doProcess = doProcess;
_lst_MatInfo << info;
}
}
然后将在另一个线程中处理和释放Qlist的成员:
ocr()
{
MatInfo matInfo = _lst_MatInfo.first();
_lst_MatInfo.removeFirst();
process(matInfo);
}
注意我没有新的东西,每次我使用MatInfo时,我删除了Qlist的第一个成员。 但内存泄漏,应用程序停止工作。 我应该做什么比removeFirst()吗?