forward_list :: splice_after(const_iterator pos,forward_list& other,const_iterator i)功能

时间:2012-12-11 15:05:36

标签: c++ list c++11 splice forward-list

我正在阅读关于此功能应该如何工作的不同解释。

cplusplus.com说这个函数应该“在我之后直接移动元素” 然而cppreference.com说它拼接了元素AT i MSvisual studio同意cplusplus.com。然而,究竟什么是正确的行为?我倾向于认为“在i之后”更合乎逻辑(并且没有花费N时间来找到前一个节点)。

(PS:没有前瞻性标签?)

1 个答案:

答案 0 :(得分:4)

23.3.4.6

void splice_after(const_iterator position, forward_list& x, const_iterator i);
void splice_after(const_iterator position, forward_list&& x, const_iterator i);

效果:将i后面的元素插入* this,跟随位置,并将其从x中删除。该 如果position == i或position == ++ i,结果不变。指针和对* i的引用继续 引用相同的元素,但作为* this的成员。迭代到* i(包括我自己)继续 引用相同的元素,但现在表现为迭代器为* this,而不是x。