auto it = hand.begin();
while (true) {
// 假设序列x,y。it指向x
// 这个y可能是list的end
// 备份 值
int bak_val = *it;
// 移除当前it所指,执行完后it指向y。执行完后序列变成y
hand.erase(it++);
// 之前备份的值 被插到y之前,执行完后序列变成了x,y。it指向y
hand.insert(it, bak_val);
// 若y是end,则该退出了
bool bre = false;
if (it == hand.end()) {
bre = true;
}
if (bre) {
break;
}
}