C++ List swap() 使用方法及示例

C++ List(列表)

C ++ List swap()函数将两个相同类型的列表进行交换,但是大小可以不同。

语法

void swap(list& x);

参数

x:这是另一个要与给定列表交换的列表。

返回值

它不返回任何值。

错误:

当两个列表的类型都不相同时,将引发错误。

实例1

让我们看一个简单的示例,其中两个列表的类型和大小都相同。

#include <iostream>
#include<list>
using namespace std;
int main()
{
   
    std::list<char> li={'+','-','*','@'};
    list<char> li1={'j','a','v','a'};
    std::cout << "最初,列表li的内容是 :";
    for(list<char> :: iterator itr=li.begin();itr!=li.end();++itr)
    cout<<*itr;
    std::cout << '\n'<<"最初,列表li1的内容是 :";
    for(list<char> :: iterator itr=li1.begin();itr!=li1.end();++itr)
    cout<<*itr;
    li.swap(li1);
    cout<<'\n';
    cout<<"交换后,列表li的内容为 :";
    for(list<char> :: iterator itr=li.begin();itr!=li.end();++itr)
    cout<<*itr;
    cout<<'\n';
    cout<<"交换后,列表li1的内容为 :";
    for(list<char> :: iterator itr=li1.begin();itr!=li1.end();++itr)
    cout<<*itr;
    return 0;
}

输出:

最初,列表li的内容是 : +-*@
最初,列表li1的内容是 : java
交换后,列表li的内容为 : java
交换后,列表li1的内容为 : +-*@

在此示例中,swap()函数将列表li的内容与列表li1交换。

实例2

让我们看一个简单的实例,当两个列表都是不同的类型时。

#include <iostream>
#include<list>
using namespace std;
int main()
{
   std::list<char> li={'P','H','P'};
    list<int> li1={1,2,3};
    li.swap(li1);
    cout<<'\n';
    return 0;
}

输出:

error : no matching call for list::swap(list&).

在此示例中,两个列表均为不同类型。因此,函数swap()会引发错误,即:list :: swap(list&)没有匹配的调用。

C++ List(列表)