最近我在STL遇到了列表容器的功能,我看到了
list::splice and list::insert
对我而言,似乎两者都做同样的插入工作,我无法找到差异,也无法找到差异。 那么具体是什么区别,拼接有什么特别的东西吗?
答案 0 :(得分:3)
splice
将在O(1)
时间内连接两个列表,而不会复制任何数据。 insert
涉及复制数据,如果要使用insert
连接两个列表,则需要O(N)
次,其中N是要附加的列表中的元素数。
此外,splice将修改(实际上为空)附加列表。
答案 1 :(得分:3)
Splice会将物品从源移动到目的地。 Insert会将它们从源复制到目标。拼接更快,但会修改源列表,而插入需要更长时间,但原始列表保持不变。