Хм ... по крайней мере, исходя из того, что вы пытаетесь достичь , похоже, list.splice, вероятно, является правильным инструментом для работы:
std::list<int> li, li2;
li.push_back(1);
li.push_back(2);
li.push_back(3);
li2.splice(li2.end(), li, li.rend(), li.rbegin());
Фактически, splice
является одной из немногих веских причин использовать std::list
вообще.