📅  最后修改于: 2020-10-18 03:34:05             🧑  作者: Mango
C++列表拼接函数将元素从列表y转移到指定位置的列表容器中,这导致两个列表的大小都发生改变。
void splice(iterator pos, list& y);
void splice(iterator pos, list& y, iterator pos1);
void splice(iterator pos, list& y, iterator first, iterator last);
y:它是要从其传输内容的相同类型的列表对象。
pos:定义y元素插入的位置。
pos1:pos1指向的元素将被传输。
(第一个,最后一个):它定义了要传输的元素的范围。
它不返回任何值。
让我们看一个简单的例子
#include
#include
using namespace std;
int main()
{
list li={1,2,3,4};
list li1={5,6,7,8};
list::iterator itr=li.begin();
li.splice(itr,li1);
for(list::iterator itr=li.begin();itr!=li.end();++itr)
std::cout << *itr <<" ";
return 0;
}
输出:
5 6 7 8 1 2 3 4
让我们看一个简单的例子
#include
#include
using namespace std;
int main()
{
list li={9,11,12,13};
list li1={10,6,7,8};
list::iterator itr=li.begin();
list::iterator itr1=li1.begin();
++itr;
li.splice(itr,li1,itr1);
for(list::iterator itr=li.begin();itr!=li.end();++itr)
std::cout << *itr <<" ";
return 0;}
输出:
9 10 11 12 13
让我们看一个简单的例子
#include
#include
using namespace std;
int main()
{
list li={"programming language"};
list li1={"java","is","a","language"};
list::iterator itr=li.begin();
list::iterator itr1=li1.begin();
advance(itr1,3);
li.splice(itr,li1,li1.begin(),itr1);
for(list::iterator itr=li.begin();itr!=li.end();++itr)
std::cout << *itr <<" ";
return 0;
}
输出:
java is a programming language