我有两个列表(listsub1& listsub2),我想将它们与push_back合并为一个(listclass)。
class Subclass1 : public Basisclass {...};
class Subclass2 : public Basisclass {...};
//...
typedef std::list<std::shared_ptr<Basisclass> > ListClass;
typedef std::list<std::shared_ptr<Subclass1> > ListSubclass1;
typedef std::list<std::shared_ptr<Subclass2> > ListSubclass2;
//...
ListSubclass1 listsub1 = ...
ListSubclass2 listsub2 = ...
//...
ListClass listclass;
for (const std::shared_ptr<Subclass1> pSubclass1 : listsub1)
{
listclass.push_back(pSubclass1);
}
for (const std::shared_ptr<Subclass2> pSubclass2 : listsub2)
{
listclass.push_back(pSubclass2);
}
我该如何正确地做到这一点? 以下是错误消息:
error: no matching function for call to 'std::list<std::shared_ptr<Basisclass> >::push_back(const std::shared_ptr<Subclass1>&)'
listclass.push_back(pSubclass1);
答案 0 :(得分:0)
感谢您的帮助!
我忘了包含头文件:/ 现在它运作正常!