STL list transfer (迁移)实现

void transfer(iterator position, iterator first, iterator last) {
    if (position != last) {
      (*(link_type((*last.node).prev))).next = position.node;
      (*(link_type((*first.node).prev))).next = last.node;
      (*(link_type((*position.node).prev))).next = first.node;  
      link_type tmp = link_type((*position.node).prev);
      (*position.node).prev = (*last.node).prev;
      (*last.node).prev = (*first.node).prev; 
      (*first.node).prev = tmp;
    }
}
 
将firs和last之间(左闭右开)的元素迁移至position之前。
posted @ 2013-01-04 15:44  helloweworld  阅读(236)  评论(0编辑  收藏  举报