当前位置: 代码迷 >> 综合 >> std::list::splice
  详细解决方案

std::list::splice

热度:23   发布时间:2024-01-06 03:29:24.0

以往用自己写的链表, 移动节点很方便,从A链表拆下来节点x拼到B就好了。

这样做只是移动节点,不会导致额外的内存的分配/释放。

 

但是用 std::list 的时候,都是像这么用:

   a.push_back( b.front() ); 
   b.pop_front();

这里有两个问题,new复制构造一个新节点,删除旧节点。

这就很不美了。

 

 

stl不可能会这么弱的,于是在知乎上搜到韦一笑的一个回答,   

list::splice 完美解决这问题。

  相关解决方案