C ++ STD Swap

C ++ STD Swap
“A troca é o ato de trocar duas ou mais coisas. Os dados entre duas variáveis ​​na programação podem ser alternados. A troca de coisas entre duas pessoas é possível na vida real. Os valores de dois objetos podem ser trocados usando a função de biblioteca padrão Swap () em C++. Foi colocado sob o cabeçalho da “utilidade” em C11. A função swap () em c ++ tem uma complexidade de n para matrizes porque cada elemento deve ser trocado individualmente, enquanto a dificuldade da função para constantes é constante. A função swap () lança um aviso ou erro se algum dos elementos variáveis ​​falharem. Veja a assinatura da função para std :: swap () abaixo:

Sintaxe:

modelo < class T > swap void (t & variável_1, t & variável_2);

Tanto o valor da primeira variável quanto a segunda variável, ambos os valores da loja, devem ser trocados. A função apenas alterna os valores das variáveis; não tem saída.”

Trabalho de Swap () Função em C++

A função Swap é implementada em C ++ usando as três linhas a seguir.

Modelo Void Swap (T & I, T&J)
T temp = std :: mover (i);
i = std :: move (j);
j = std :: mover (temp);

A afirmação “t temp = std :: move (i)”; faz uma cópia do elemento "eu" e duplica -o. Aqui, “i = std :: move (j)”; descarta os itens originais de "i" e armazena a cópia "i" de "j" no lugar do "j" original. A fórmula “j = std :: move (temp)”; salve "eu" com um clone de temperatura e remova o conteúdo idêntico da temperatura. Além disso, exclua a variável temp após a execução da função swap ().

Exemplo 1: Programar usando o método STD :: Mover para trocar

Como demonstrado abaixo, podemos trocar dois objetos usando o recurso C ++ 11 Std :: Mover.

#incluir
#incluir
modelo
Void Swap (T&A, T&B)

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

int main ()

Std :: Vector List = 10, 12, 13, 15, 16, 17;
int i = 3, j = 5;
swap (lista [i], lista [j]);
para (int i: list)
std :: cout<
retornar 0;

Temos uma declaração de modelo que tem um objeto "t". Depois disso, estabelecemos a função como "troca". A função leva os dois parâmetros e a & b, do tipo "t". Como resultado dos argumentos T&A, T&B referenciando ou armazenando o endereço da variável passada e se aplica diretamente a eles sem retornar, a função Swap (T&A, T&B) é chamada de chamada por referência.

Dentro da troca de vazios, aplicamos o algoritmo de troca usando o método STD :: Mover. Em seguida, construímos os principais do programa. Aqui, declaramos a variável "lista" e a inicializamos com a lista de valores numéricos. Definimos os valores para o "eu" e "j" para trocar. O valor numérico localizado no segundo índice foi substituído pelo valor numérico no quinto índice. Em seguida, chamamos a função de troca e passamos os índices "i" e "j" para trocar. O loop for usado para imprimir a lista trocada.

A saída exibiu a lista modificada. Você pode observar a nova lista gerada trocou o valor de acordo com os índices especificados.

Exemplo 2: Programar usando o método STD :: Swap para trocar

Utilizando o mecanismo de troca de std :: encontrado no cabeçalho da utilidade (em C ++ 11) é a correção usual. Os valores de dois objetos são alterados para fazê -lo funcionar.

#incluir
#incluir
#incluir
int main ()

std :: Vectorarr = 3, 6, 9, 15, 13;
int i = 3, j = 4;
std :: swap (arr [i], arr [j]);
para (int i: arr)
std :: cout<
retornar 0;

Ao importar o arquivo de cabeçalho, podemos acessar a função de troca em nosso programa. Aqui, incluímos o arquivo de cabeçalho com duas bibliotecas mais importantes. Então, estabelecemos o método principal int. Dentro da principal do programa, declaramos o vetor criando a variável “ARR.”A variável“ arr ”é inicializada com os cinco elementos do número inteiro. As posições do índice são atribuídas ao "eu" e "j" para trocar. As variáveis ​​“i” e “j” são passadas para o método STD :: Swap para a troca do valor do índice especificado. Com o loop for, imprimimos as matrizes trocadas.

A lista obtida após a operação de troca usando o método STD :: Swap é exibida da seguinte forma:

Exemplo 3: Programa usando o método STD :: ITER_SWAP para trocar

O uso do algoritmo STD :: iter_swap, que está listado no cabeçalho do algoritmo, é uma opção adicional. A maneira como opera é alterar os valores dos objetos que os iteradores, apontam para.

#incluir
#incluir
#incluir
#incluir
int main ()

std :: Vectorvec = 64, 61, 62, 63, 60;
int i = 0, j = 4;
Auto Itr1 = Std :: Next (VEC.BEGIN (), i);
Auto Itr2 = std :: Next (VEC.begin (), j);
std :: iter_swap (itr1, itr2);
para (int i: vec)
std :: cout<
retornar 0;

Para o método principal do programa, declaramos uma variável de vetor "VEC" e atribuímos uma lista de vetores de números. Em seguida, especificamos a posição do índice para a variável "i" e "j". O método std :: iter_swap é invocado que leva o iter1 e o iter2 como um argumento. O ITER1 e o ITER2 são declarados com a palavra -chave automática e têm a operação de iteração. O método de loop for imprime os valores trocados da matriz vetorial após a execução.

O método std :: iter_swap trocou com sucesso os valores dos vetores especificados.

Exemplo 4: Programa de uso sem variáveis ​​temporárias para trocar

Este exemplo mostra uma nova maneira de trocar números no código C ++ sem o uso de variáveis ​​temporárias.

#incluir
usando namespace 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 <retornar 0;

Vamos examinar a operação deste programa. Aqui, declaramos x1 e x2, que são inicialmente definidos com o número, respectivamente. Então, usando a fórmula x1 = x1+ x2, adicionamos x1 e x2 e colocamos o resultado em x1. Isso indica que x1 é igual a 2 mais 12. Portanto, agora é igual a 14. Em seguida, aplicamos a fórmula x2 = x1 - x2. Isso indica que x2 = 14 - 12. Portanto, x2 agora é igual a 2. Mais uma vez, aplicamos a fórmula x1 = x1 - x2. Isso indica que x1 = 14 - 2. Portanto, x1 = 12 no final. Como resultado, os números foram trocados.

O número trocado antes e depois é exibido na tela pronta seguinte.

Conclusão

Aqui, analisamos uma descrição completa de Swap () em C ++, seu uso e alguns exemplos que mostram como ele funciona. Ao usar a função std :: swap (), os valores de duas variáveis ​​podem ser alternados. O STL C ++ inclui uma função interna chamada std :: swap (). As chamadas de função Swap (T & Variable 1, T & Variable 2) por referência, e as sobrecargas C ++ Swap (), dependendo do tipo de variáveis ​​de dados também são explicadas neste tutorial.