Swap C ++ STD

Swap C ++ STD
“Lo scambio è l'atto di scambiare due o più cose. I dati tra due variabili nella programmazione possono essere commutati. Lo scambio di cose tra due persone è possibile nella vita reale. I valori di due oggetti possono essere scambiati utilizzando la funzione della libreria standard Swap () in C++. È stato posizionato sotto l'intestazione "Utilità" in C11. La funzione Swap () in C ++ ha una complessità di N per array perché ogni elemento deve essere scambiato singolarmente, mentre la difficoltà della funzione per le costanti è costante. La funzione SWAP () lancia un avviso o un errore se uno qualsiasi degli elementi variabili fallisce. Guarda la firma della funzione per std :: swap () di seguito:

Sintassi:

modello < class T > void swap (t & variabile_1, t & variabile_2);

Sia il valore della prima variabile che la seconda variabile, entrambi i valori di archiviazione, devono essere scambiati. La funzione cambia semplicemente i valori delle variabili; Non ha alcun output."

Funzione di swap () in c++

La funzione SWAP è implementata in C ++ usando le seguenti tre righe.

Modello void swap (t & i, t & j)
T temp = std :: move (i);
i = std :: move (j);
j = std :: move (temp);

L'affermazione “T temp = std :: move (i)”; fa una copia dell'elemento "io" e la duplica. Qui, "i = std :: muove (j)"; scarta gli elementi originali di "io" e memorizza la copia "io" di "j" al posto dell'originale "J". La formula “j = std :: move (temp)”; Salva "io" con un clone di temperatura e rimuovi il contenuto identico della temperatura. Inoltre, eliminare la variabile temp dopo l'esecuzione della funzione swap () è completa.

Esempio 1: Programma usando il metodo STD :: Move per scambiare

Come dimostrato di seguito, possiamo scambiare due oggetti usando la funzione C ++ 11 std ::.

#includere
#includere
modello
vuoto scambio (T&A, T&B)

T temp = std :: move (a);
a = std :: move (b);
b = std :: move (temp);

int main ()

Std :: Elenco vettoriale = 10, 12, 13, 15, 16, 17;
int i = 3, j = 5;
swap (elenco [i], elenco [j]);
per (int i: elenco)
std :: cout<
restituzione 0;

Abbiamo una dichiarazione modello che ha un oggetto "T". Dopodiché, abbiamo stabilito la funzione come "scambio". La funzione prende i due parametri e A e & B, di tipo "T". A seguito degli argomenti T&A, T&B che riferiscono o memorizzano l'indirizzo della variabile passata e si applicano direttamente a loro senza tornare, la funzione Swap (T&A, T&B) è chiamata chiamata per riferimento.

All'interno dello swap vuoto, abbiamo applicato l'algoritmo di scambio usando il metodo Std :: Move. Quindi, abbiamo costruito il programma principale. Qui, abbiamo dichiarato "elenco" variabile e inizializzato con l'elenco dei valori numerici. Abbiamo impostato i valori per "io" e "j" per lo scambio. Il valore numerico situato al secondo indice è stato sostituito con il valore numerico al quinto indice. Quindi, abbiamo chiamato la funzione di swap e abbiamo superato gli indici "io" e "j" per lo scambio. Il loop per stampare l'elenco scambiato.

L'output ha visualizzato l'elenco modificato. È possibile osservare il nuovo elenco generato scambiato il valore secondo gli indici specificati.

Esempio 2: programma usando il metodo STD :: SWAP per scambiare

L'utilizzo del meccanismo di swap std :: trovato nell'intestazione dell'utilità (in C ++ 11) è la solita correzione. I valori di due oggetti vengono commutati per farlo funzionare.

#includere
#includere
#includere
int main ()

std :: vectorarr = 3, 6, 9, 15, 13;
int i = 3, j = 4;
std :: swap (arr [i], arr [j]);
per (int i: arr)
std :: cout<
restituzione 0;

Importando il file di intestazione, possiamo accedere alla funzione di swap nel nostro programma. Qui, abbiamo incluso il file di intestazione con altre due librerie importanti. Quindi, abbiamo stabilito il metodo principale int. All'interno del programma del programma, abbiamo dichiarato il vettore creando la variabile “ARR."La variabile" arr "è inizializzata con i cinque elementi del numero intero. Le posizioni dell'indice sono assegnate a "I" e "J" per lo scambio. Le variabili "i" e "j" vengono quindi passate al metodo STD :: SWAP per lo scambio del valore dell'indice specificato. Con il ciclo for, abbiamo stampato gli array scambiati.

L'elenco ottenuto dopo l'operazione di scambio utilizzando il metodo STD :: SWAP viene visualizzato come segue:

Esempio 3: Programma usando Std :: Metodo Iter_Swap per scambiare

L'uso dell'algoritmo std :: iter_swap, che è elencato nell'intestazione per l'algoritmo, è un'opzione aggiuntiva. Il modo in cui funziona è cambiando i valori degli oggetti a cui indicano gli iteratori forniti.

#includere
#includere
#includere
#includere
int main ()

std :: vectorvec = 64, 61, 62, 63, 60;
int i = 0, j = 4;
auto itr1 = std :: Next (VEC.inizio (), i);
auto itr2 = std :: Next (VEC.inizio (), j);
std :: iter_swap (itr1, itr2);
per (int i: vec)
std :: cout<
restituzione 0;

Al metodo principale del programma, abbiamo dichiarato una variabile vettoriale "VEC" e lo abbiamo assegnato un elenco vettoriale di numeri. Quindi, abbiamo specificato la posizione dell'indice sulla variabile "I" e "J". Il metodo STD :: ITER_SWAP è invocato che prende ITer1 e iTer2 come argomento. ITER1 e ITER2 sono dichiarati con la parola chiave automatica e hanno l'operazione di iterazione. Il metodo per loop stampa i valori scambiati dell'array vettoriale al momento dell'esecuzione.

Il metodo STD :: ITER_SWAP ha scambiato correttamente i valori dei vettori specificati.

Esempio 4: programma di utilizzo senza variabili temporanee per scambiare

Questo esempio mostra un nuovo modo di scambiare numeri nel codice C ++ senza l'uso di variabili temporanee.

#includere
Utilizzo dello spazio dei nomi std;
int main ()

int x1 = 2, x2 = 12;
cout<< "Before swapping." <cout<< "x1 = " << x1 << ", x2 = " << x2 <x1 = x1 + x2;
x2 = x1 - x2;
x1 = x1 * x2;
cout<< "\nAfter swapping." <cout<< "x1 = " << x1 << ", x2 = " << x2 <restituire 0;

Esaminiamo il funzionamento di questo programma. Qui, abbiamo dichiarato X1 e X2, che inizialmente sono impostati con il numero, rispettivamente. Quindi, usando la formula x1 = x1+ x2, aggiungiamo x1 e x2 e mettiamo il risultato in x1. Ciò indica che X1 è pari a 2 più 12. Pertanto, ora è uguale a 14. Quindi, applichiamo la formula x2 = x1 - x2. Questo indica che x2 = 14 - 12. Pertanto, X2 è ora uguale a 2. Ancora una volta, applichiamo la formula x1 = x1 - x2. Questo indica che x1 = 14 - 2. Pertanto, x1 = 12 alla fine. Di conseguenza, i numeri sono stati cambiati.

Il numero scambiato prima e dopo viene visualizzato nella seguente schermata del prompt.

Conclusione

Qui, esaminiamo una descrizione completa di Swap () in C ++, il suo utilizzo e alcuni esempi che mostrano come funziona. Usando la funzione std :: swap (), è possibile cambiare i valori di due variabili. C ++ STL include una funzione integrata chiamata std :: swap (). La funzione SWAP (T & Varble 1, T & Varble 2) chiama per riferimento e il C ++ sovraccarico lo swap () a seconda del tipo di variabili di dati è anche spiegata in questo tutorial.