Qt 将指针向量传递给插入器

Qt 将指针向量传递给插入器,qt,pointers,vector,inserter,Qt,Pointers,Vector,Inserter,我对QT使用了两种方法。PRINTR函数只是从我的课程对象打印信息,PRINTN应该找到两个向量之间的差异,并使用PRINTR打印结果。PRINTR函数工作正常,但我在让PRINTN工作时遇到问题: void course::printr(vector<course*> c){ QString string1,string2; for(int i = 0; i < (int)c.size();i++){ string1 = c[i]->getSubjectCour

我对QT使用了两种方法。PRINTR函数只是从我的课程对象打印信息,PRINTN应该找到两个向量之间的差异,并使用PRINTR打印结果。PRINTR函数工作正常,但我在让PRINTN工作时遇到问题:

void course::printr(vector<course*> c){
QString string1,string2;
for(int i = 0; i < (int)c.size();i++){
    string1 = c[i]->getSubjectCourse();
    string2 = c[i]->getTitle();
    emit send(QString("%1\t%2").arg(string1).arg(string2));
    }
}
错误消息很长,但我认为它在抱怨,因为我试图将指针向量传递给插入器函数。当我使用常规对象向量时,插入器函数自身工作,但我得到的QObject是private错误。我有没有办法让它与我目前的结构一起工作?我尝试了几种不同的变体,但由于QT的结构,它们不起作用。
我希望我已经解释清楚了这一切,但如果你需要更多的解释,我正在努力完成,请让我知道。提前谢谢

在stl容器中使用对象的最重要要求是什么?它们必须是可复制的。QoObject最重要的限制是什么?这些文件不可复制。我并没有真正阅读您的代码,但看到“vector”和“QObject是私有错误”。。。不需要更多的信息

void course::printn(vector<course> a,vector<course> compA){
sort(a.begin(),a.end());
sort(compA.begin(),compA.end());
vector<course*> diff;
set_difference(a.begin(),
                a.end(),
                compA.begin(),
                compA.end(),
                inserter(diff,diff.begin()));
course().printr(diff);
}
inserter(diff,diff.begin()));