splice()在cpp中的功能

Sai*_*ran 5 c++ list

拼接如何工作?我在http://www.cplusplus.com/reference/list/list/splice/上看到了它

我无法从上面链接的代码中理解这部分内容:

mylist1.splice ( mylist1.begin(), mylist1, it, mylist1.end());
Run Code Online (Sandbox Code Playgroud)

Sir*_*ius 5

想象一下,你有一个包含以下内容的整数列表:

[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

现在,您在名单中创建一个迭代器,并将其it推进到3个位置:

[1, 2, 3, 4, 5]
          ^
          'it' points here
Run Code Online (Sandbox Code Playgroud)

然后你将列表拼接成自己,列表的开头(第一个参数),在同一个列表(第二个参数),从it(第三个参数)指向的位置到结束(第四个参数),它给出以下结果:

[4, 5, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

因此,您有效地将两个元素的列表向右旋转.