std::list::splice(std::const_iterator pos, std::list&& other)
保证other
留空吗?
是的,可以保证std::list::splice
.
(强调我的(
1(将所有元素从其他元素转移到
*this
。元素插入到pos
指向的元素之前。操作后,容器other
变为空。如果 other 引用与*this
相同的对象,则未定义该行为。
从标准 [list.ops]/4:
(强调我的(
效果:在
position
之前插入x
的内容,x
变为空。对x
的移动元素的指针和引用现在引用这些相同的元素,但作为*this
的成员。引用移动元素的迭代器将继续引用它们的元素,但它们现在表现为*this
的迭代器,而不是x
的迭代器。
目标会以空列表开始吗?然后,您可以交换列表。
否则,如果您不确定是否可以将源列表移动到目标列表中,并清除源列表。