我正在阅读关于此功能应该如何工作的不同解释。
cplusplus.com说这个函数应该“在我之后直接移动元素” 然而cppreference.com说它拼接了元素AT i MSvisual studio同意cplusplus.com。然而,究竟什么是正确的行为?我倾向于认为“在i之后”更合乎逻辑(并且没有花费N时间来找到前一个节点)。
(PS:没有前瞻性标签?)
答案 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。