"std::list::splice(std::const_iterator pos, std::list&& other)"是否保证将"其他"留空?



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的迭代器。

目标会以空列表开始吗?然后,您可以交换列表。

否则,如果您不确定是否可以将源列表移动到目标列表中,并清除源列表。

相关内容

  • 没有找到相关文章

最新更新