Use the list method splice()
void list::splice ( iterator position, list<T,Allocator>& x, iterator i );
Move iterator i from list x into current list at position "position"
Thus to move it to the end put
x.splice( x.end(), x, iter );
(they can both be the same list or different lists as long as the list from which the item is moved has the same type, both T and Allocator)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…