std::list splice 简介
splice
函数通过重新排列链表指针,将一个std::list
中的节点转移到另一个std::list
中。在元素的转移过程中不会触发元素的拷贝或者移动。因此,调用splice
函数之后,元素现有的引用和迭代器都不会失效。
下面是一个将listA
中所有节点附加到listB
的一个简单代码示例,转移的过程不会导致listA
中元素的引用和迭代器失效:
// Note: c++17 required below. (For CTAD(Class template argument deducation))
std::list listA{1, 2, 3};
std::list listB{4, 5, 6...