У функции сплайсинга есть прототипы, объявленные как:
void splice ( iterator position, list<T,Allocator>& x );
void splice ( iterator position, list<T,Allocator>& x, iterator i );
void splice ( iterator position, list<T,Allocator>& x, iterator first, iterator last );
Второй параметр L
, который вы передаете функциям, объявляется как указатель:
list<int> *L
Это приводит к ошибке несоответствия функции, потому что нет функции сплайсинга, которая принимает второй параметр в качестве указателя. Вы должны разыменовать указатель L
, чтобы соответствовать прототипу функции splice
.
temp.splice(temp.end(), *L, aa, bb);
temp.splice(temp.end(), *L, bb);
temp.splice(temp.end(), *L, begin(), aa);