以往用自己写的链表, 移动节点很方便,从A链表拆下来节点x拼到B就好了。
这样做只是移动节点,不会导致额外的内存的分配/释放。
但是用 std::list 的时候,都是像这么用:
a.push_back( b.front() );
b.pop_front();
这里有两个问题,new复制构造一个新节点,删除旧节点。
这就很不美了。
stl不可能会这么弱的,于是在知乎上搜到韦一笑的一个回答,
list::splice 完美解决这问题。
以往用自己写的链表, 移动节点很方便,从A链表拆下来节点x拼到B就好了。
这样做只是移动节点,不会导致额外的内存的分配/释放。
但是用 std::list 的时候,都是像这么用:
a.push_back( b.front() );
b.pop_front();
这里有两个问题,new复制构造一个新节点,删除旧节点。
这就很不美了。
stl不可能会这么弱的,于是在知乎上搜到韦一笑的一个回答,
list::splice 完美解决这问题。