C++ STL中的forward_list::swap()
forward_list::swap() 是CPP STL中的一个内置函数,可将第一个给定的forward_list的内容与另一个forward_list交换。
语法:
swap(forward_list 第一个,forward_list 第二个)
或者
forward_list1.swap(forward_list 第二个)
参数: 该函数接受两个参数,如下所示:
- 第一个–第一个forward_list
- 第二个–第二个forward_list
返回值: 该函数不返回任何内容。它交换了两个列表。
下面的程序演示了上述函数:
程序1:
// CPP program that demonstrates the
// forward_list::swap() function
// when two parameters is passed
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化两个forward_list
forward_list<int> firstlist = { 9, 8, 7, 6 };
forward_list<int> secondlist = { 10, 20, 30 };
// 交换前打印firstlist和secondlist的元素
cout << "交换前的firstlist:";
for (auto it = firstlist.begin(); it != firstlist.end(); ++it)
cout << *it << " ";
cout << "\n交换前的secondlist:";
for (auto it = secondlist.begin(); it != secondlist.end(); ++it)
cout << *it << " ";
// 交换两个列表
swap(firstlist, secondlist);
// 交换后打印firstlist和secondlist的元素
cout << "\n\n交换后的firstlist:";
for (auto it = firstlist.begin(); it != firstlist.end(); ++it)
cout << *it << " ";
cout << "\n交换后的secondlist:";
for (auto it = secondlist.begin(); it != secondlist.end(); ++it)
cout << *it << " ";
return 0;
}
交换前的firstlist:9 8 7 6
交换前的secondlist:10 20 30
交换后的firstlist:10 20 30
交换后的secondlist:9 8 7 6
程序2:
// CPP program that demonstrates the
// forward_list::swap() function
// when two parameters is passed
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化两个forward_list
forward_list<int> firstlist = { 9, 8, 7, 6 };
forward_list<int> secondlist = { 10, 20, 30 };
// 交换前打印firstlist和secondlist的元素
cout << "交换前的firstlist:";
for (auto it = firstlist.begin(); it != firstlist.end(); ++it)
cout << *it << " ";
cout << "\n交换前的secondlist:";
for (auto it = secondlist.begin(); it != secondlist.end(); ++it)
cout << *it << " ";
// 交换两个列表
firstlist.swap(secondlist);
// 交换后打印firstlist和secondlist的元素
cout << "\n\n交换后的firstlist:";
for (auto it = firstlist.begin(); it != firstlist.end(); ++it)
cout << *it << " ";
cout << "\n交换后的secondlist:";
for (auto it = secondlist.begin(); it != secondlist.end(); ++it)
cout << *it << " ";
return 0;
}
在交换操作之前,第一个列表是:9 8 7 6
在交换操作之前,第二个列表是:10 20 30
在交换操作之后,第一个列表是:10 20 30
在交换操作之后,第二个列表是:9 8 7 6