Cuando estábamos discutiendo splice de std::list, les comenté que como no teníamos la documentación a la mano, iba a dar la explicación con lo que recordaba. En general todo lo que les dije está bien. Sólo faltó especificar un parámetro que afortunadamente es trivial: Nosotros lo vimos así: lista_receptora.splice(punto de inserción en receptora, inicio de secuencia cedida, fin de secuencia cedida) Debe ser así: lista_receptora.splice(punto de inserción en receptora, lista que cede, inicio de secuencia cedida, fin de secuencia cedida) ^^^^^^^^^^^^^^^ no basta con el inicio y el fin de lo que cedemos; también debemos indicar quién cede Por ejemplo: list a = { 1, 2, 3, 4, 5 }; list b = { 6, 7, 8, 9 }; a.splice(prev(a.end( ), 2), b, next(b.begin( )), prev(b.end( )); ^^ faltó poner ése