English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Uso e esempio della funzione swap() dell'elenco di C++

C++ List(列表)

La funzione swap() dell'elenco di C++ scambia due elenchi di tipo identico, ma le dimensioni possono essere diverse.

Sintassi

void swap(list& x);

Parametro

x: Questa è un'altra lista da scambiare con la lista fornita.

Valore di ritorno

Non restituisce alcun valore.

Errore:

Quando i tipi di entrambi gli elenchi sono diversi, viene generato un errore.

Esempio 1

Lasciate che vi mostriamo un esempio semplice, in cui i tipi e le dimensioni di due elenchi sono gli stessi.

#include	<iostream>
#include<list>
using namespace std;
int main()
{
   
    std::list<char> li={'+','-','*','@'};
    list<char> li1={'j','a','v','a'};
    std::cout << "All'inizio, il contenuto dell'elenco li è: ";
    for(list<char>::iterator itr=li.begin();itr!=li.end();++itr)
    cout<<*itr;
    std::cout << '\n' << "All'inizio, il contenuto dell'elenco li1 è: ";
    for(list<char>::iterator itr=li1.begin();itr!=li1.end();++itr)
    cout<<*itr;
    li.swap(li1);
    cout<<'\n';
    cout<<"Dopo lo scambio, il contenuto dell'elenco li è: ";
    for(list<char>::iterator itr=li.begin();itr!=li.end();++itr)
    cout<<*itr;
    cout<<'\n';
    cout<<"Dopo lo scambio, il contenuto dell'elenco li1 è: ";
    for(list<char>::iterator itr=li1.begin();itr!=li1.end();++itr)
    cout<<*itr;
    return 0;
}

输出:

All'inizio, il contenuto dell'elenco li è: 	+-*@
All'inizio, il contenuto dell'elenco li1 è: 	java
Dopo lo scambio, il contenuto dell'elenco li è: 	java
Dopo lo scambio, il contenuto dell'elenco li1 è: 	+-*@

In questo esempio, la funzione swap() scambia il contenuto dell'elenco li con quello dell'elenco li1.

Esempio 2

Lasciate che vi mostriamo un esempio semplice, quando due elenchi sono di tipi diversi.

#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(列表)