Stdmove em c ++

Stdmove em c ++

Assim como muitas outras funções C ++, a função std :: move () é única em sua funcionalidade. Como o nome sugere, foi utilizado para mover o valor de uma variável para outra enquanto excluiu o valor da primeira variável. Pode ser usado com ou sem a função push_back () da biblioteca vetorial. Então, vamos começar o artigo para ver se está funcionando. Crie um novo arquivo C ++ e abra -o.

Exemplo 01:

Vamos começar com o primeiro exemplo. Os principais arquivos de cabeçalho para este código foram adicionados, i i.e., iostream, vetor, string e utilidade. Precisamos adicionar o espaço de nome padrão “std.”Então, duas variáveis ​​do tipo string, S1 e S2, são inicializadas na função principal (). Aí vem o iterador do tipo vetor "v" de um tipo de string. O objeto iterator "V" é usado para aplicar a função push_back () em S1. Isso significa que o valor S1 variável foi empurrado para o último local do vetor. Como o vetor está vazio, ele será inserido primeiro. Aí vem o "std :: move ()" para não criar outro objeto vetorial para agregar valor a ele. Portanto, a função push_back () usa a função "std :: move ()" para mover a string s2 para um vetor "v" em seu último local. A declaração cout está aqui para nos informar sobre o vetor resultante. O loop "for" é utilizado para obter os valores do vetor como uma lista e exibi -los no terminal através da cláusula "cout". O código termina aqui. Salve e feche o arquivo para avançar.

incluir
#incluir
#incluir
#incluir
usando namespace std;
int main ()
String S1 = "Hello";
string s2 = "mundo";
vetorv;
v.push_back (S1);
v.push_back (std :: move (s2));
cout << "Overall Vector:";
para (String & X: V)
cout << " << x << '\n';
retornar 0;

O código deve ser compilado antes de sua execução para resolver qualquer erro. Portanto, o compilador G ++ foi utilizado até agora. O "./a.fora ”A instrução eterna está aqui para executar nosso código C ++. Você pode ver que o resultado mostra o vetor de duas cordas.

Exemplo 02:

Vamos dar uma olhada em outro exemplo de uso de std :: move () em c ++ da maneira mais simples possível. O código é iniciado com as mesmas bibliotecas de cabeçalho, eu.e., iostream, vetor, string e utilidade. Depois disso, o namespace padrão "std" é necessário para evitar o uso da palavra -chave "std" repetidamente no código. A função principal () é iniciada com a inicialização de uma variável de string "s" com um valor de string. O vetor "VEC" do tipo de string é declarado como vazio. Como existe apenas 1 string, o vetor resultante será construído com esta única variável. Portanto, a função push_back () é chamada usando o objeto vetor "VEC.”Esta função copia a string
“S” a ser colocado no último local de um vetor “VEC.”Ele não exclui o valor da variável“ S ”. A instrução Cout exibe o valor da string "s" no shell após o uso da função push_back (). Novamente, o mesmo valor é movido para o último local de um vetor utilizando a função "mover" dentro do método "push_back ()". A declaração Cout mostrará o valor de "S" depois de usar o método "mover". Na última, a cláusula Cout é utilizada para mostrar os valores resultantes do vetor "VEC" no shell.

#incluir
#incluir
#incluir
#incluir
usando namespace std;
int main ()
String S = "Linux";
vetorvec;
VEC.push_back (s);
cout << "After Copy String: " << s << endl;
VEC.push_back (move (s));
cout << "After Move String: " << s << endl;
cout<<"Vector Elements: "<retornar 0;

O código foi executado. Em primeiro lugar, mostra o valor de "s" depois de copiá -lo para o vetor "VEC.”Depois de usar um movimento (), a variável“ S ”ficou vazia. No último, o valor do vetor foi exibido.

Exemplo 03:

Vamos ter um último, mas não o menor exemplo de movimento (). Uma única biblioteca e namespace padrão estão incluídos. A função principal () é iniciada com a inicialização de dois vetores do tipo inteiro, V1 e V2, com algum alcance. A primeira declaração Cout mostra que exibiremos o valor do primeiro vetor V1. O loop "for" está aqui para iterar os valores do primeiro vetor V1 de sua posição inicial até o final usando a função "tamanho". Em cada iteração, ele exibe cada valor do vetor. O mesmo foi feito para o Vector V2 exibir seus valores inteiros através do loop "for".

A função std :: move () está utilizando a função Begin (). O primeiro parâmetro, v1.BEGIN () mostra o valor inicial do Vector V1 a ser colocado no vetor V2. O segundo parâmetro, “v1.BEGIN () + 4 ”, mostra o último local da V1, que podemos somar no Vector V2. O terceiro parâmetro, “V2.BEGIN () + 1 ”, mostra o ponto de partida do vetor V2, onde temos que adicionar ou substituir os valores. O último loop "for" está aqui para iterar o recém -atualizado Vector V2 e exibi -lo no shell.

#incluir
usando namespace std;
int main ()
vetorv1 2, 4, 6, 8, 10;
vetorv2 0, 0, 0, 0, 0;
cout <<"Vector 1: ";
para (int i = 0; icout << " " << v1[i];
cout << endl;
cout <<"Vector 2: ";
para (int i = 0; icout << " " << v2[i];
cout << endl;
std :: move (v1.begin (), v1.BEGIN () + 4, V2.begin () + 1);
cout <<"Vector 2 After move: ";
para (int i = 0; icout << " " << v2[i];
cout << endl;
retornar 0;

Na execução, ambos os vetores são exibidos separadamente primeiro. Depois disso, o Vector V2 atualizado mostra os últimos 4 valores atualizados.

Conclusão:

Este artigo explica exemplos da função std :: move () em c++. Usamos a função push_back () para elaborar mais claramente em nossos códigos. Cobrimos o conceito de vetores em nossos códigos para utilizar a função de movimentação.