这是我的代码中不起作用的部分:
template<typename T>
list<T> f(list<list<T> >& lst,
void (*op)(list<T>&, list<T>&))
{
list<list<T> >::iterator itr = lst.begin();
int count = 0;
for_each(lst.begin(), lst.end(),
[&count](list<T> l){ count += l.size(); });
list<T> res(count);
res.insert(res.end(), itr->begin(), itr->end());
sort(res.begin(), res.end());
return res;
}
VS2012 编译器显示错误 C2784:
error C2784: ''unknown-type' std::operator -(std::move_iterator<_RanIt> &,const
std::move_iterator<_RanIt2> &)' : could not deduce template argument for
'std::move_iterator<_RanIt> &' from 'std::_List_iterator<_Mylist>'
我试着打电话
sort<T>(res.begin(), res.end());
但得到消息:
cannot convert parameter 1 from 'std::_List_iterator<_Mylist>' to 'int'