接头和插入物之间的区别

时间:2016-08-02 14:01:34

标签: c++ list stl

最近我在STL遇到了列表容器的功能,我看到了

list::splice and list::insert

对我而言,似乎两者都做同样的插入工作,我无法找到差异,也无法找到差异。 那么具体是什么区别,拼接有什么特别的东西吗?

2 个答案:

答案 0 :(得分:3)

splice将在O(1)时间内连接两个列表,而不会复制任何数据。 insert涉及复制数据,如果要使用insert连接两个列表,则需要O(N)次,其中N是要附加的列表中的元素数。

此外,splice将修改(实际上为空)附加列表。

答案 1 :(得分:3)

Splice会将物品从源移动到目的地。 Insert会将它们从源复制到目标。拼接更快,但会修改源列表,而插入需要更长时间,但原始列表保持不变。