Transformagem de DST C ++

Transformagem de DST C ++
STD :: Função de transformação existe no C ++ STL. Devemos abranger o arquivo de cabeçalho para utilizar esta função. Este método é utilizado para realizar uma operação em todos os componentes. Ele aplica operações a um ou mais componentes da matriz em sequência e salva a saída na matriz resultante. Esta abordagem funciona de duas maneiras. Estes são:

Operação unária: Isso é aplicado a todos os itens da série de entrada, e a saída é armazenada em outra matriz.

Operação binária: Esta operação é aplicada a todos os itens da primeira série de entrada e ao componente correspondente da segunda série de entrada. Como a operação unária, o resultado também é salvo na matriz de saída.

Nem a operação unária nem a operação binária alteram diretamente o componente passado como um parâmetro. Se a saída especificar a mesma série, eles serão alterados indiretamente pelo algoritmo. Vamos discutir a função STD :: Transform e seus modos em detalhes.

Operação unária:

STD :: Transform relaciona a função especificada a um intervalo e salva a saída em outro intervalo. Esta técnica executa uma operação unária nos componentes da série (Array, Array+12) e depois salva a saída na série que começa com o resultado.

O programa subsequente mostra como executar operações unárias em uma matriz. A função transform () recebe um ponteiro para as posições iniciais e finais de uma matriz e a posição inicial da matriz resultante.

#incluir
#incluir
usando namespace std;
int square (int m)
retornar m*m;

int main (int lmn, char ** pqr)
Int Array [12] = 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26;
INT resultado [12];
transformar (matriz, matriz+12, resultado, quadrado);
for (int j = 0; j<12; j++)
cout <

Ao incluir as bibliotecas, vamos iniciar o programa. O arquivo de cabeçalho # incluir é para fins de entrada e saída. Portanto, o arquivo de cabeçalho # incluído é usado para a função transform (). Definimos o tipo de dados inteiro para a operação unária. Além disso, definimos um tipo de dados inteiro para sua variável 'm'.

Além disso, definimos a função quadrada, tomando o quadrado da variável. No corpo principal, declaramos a matriz. Tomamos 12 números uniformes na matriz. O tipo de dados da matriz de entrada e a matriz resultante são semelhantes. A saída é salva em uma nova matriz. Posteriormente, aplicamos a função transform (). Esta função iteradores para as posições de início e final de uma série. A série utiliza (Array, Array+12), que inclui todos os componentes da matriz de entrada. Ele também contém o componente que a matriz aponta para.

Aqui a matriz resultante é um iterador de saída e itera para o início da série em que a saída é armazenada. A função unária leva um componente da categoria apontado para a matriz como um argumento e depois devolveu um valor que a matriz resultante pode alterar. A operação unária se aplica à série definida em (Array, Array+12). Isso aplica um método a cada componente de uma série. Finalmente, usamos o loop. Cada elemento é impresso em uma nova linha.

Operação binária:

Esta técnica realiza a operação binária nos componentes da série (primeiro elemento, último elemento) com o componente presente na segunda posição da série. Ele salva o resultado na série, começando com o resultado. O transform () aplica uma função que leva dois componentes e recebe dois parâmetros da série de entrada para cada par de componentes. Neste programa, executamos operações binárias nos dados especificados. Se houver necessidade de adicionar componentes de duas matrizes, utilizamos o método do operador binário.

#incluir
#incluir
#incluir
usando namespace std;
int operator_increment (int k, int l)
retornar k+l;

int main ()
int a = 8;
int inp_arr1 [] = 4, 7, 12, 36, 75, 23, 48, 69;
int inp_arr2 [] = 2, 15, 6, 95, 8, 73, 4, 80;
int otp_arr [a];
std :: cout <<"First array:";
para (int k = 0; kcout <<" <
cout <<'\n';
std :: cout <<"Second array:";
para (int k = 0; kcout <<" <
cout <<'\n';
std :: Transform (inp_arr1, inp_arr1+a, inp_arr2, otp_arr, operator_increment);
std :: cout <<"Resultant array:";
para (int k = 0; k<8; k++)
cout <<" << otp_arr[k];

cout <<'\n';
retornar 0;

Nesse caso, integramos um novo arquivo de cabeçalho que é usado para std :: transform e outro arquivo de cabeçalho #include é usado para std :: vetor. Agora aplicamos a função binária pela função de transformação. Declaramos duas variáveis ​​'k' e 'l' aqui, e ela retorna a adição da variável 'k' na variável 'l'. Além disso, definimos duas matrizes diferentes. Existem 8 elementos em cada matriz. E para representar isso, usamos a variável 'a'.

O tipo de dados das matrizes é um número inteiro. A saída é armazenada em uma nova matriz que é representada por 'otp_arr'. Queremos imprimir o texto 'Primeira matriz'; Portanto, usamos a função Cout. Pedimos o loop para a primeira matriz inserida. Com isso, obtemos os elementos da primeira matriz. Aplicamos o personagem Newline '\ n'.

Em seguida, usamos novamente um loop para obter a segunda matriz. A parte principal do programa é aplicar a função de transformação para essas matrizes. Esta função leva o primeiro e o último elemento da primeira matriz, o primeiro elemento da segunda matriz e o primeiro elemento da matriz resultante. Então a função binária é aplicada a duas matrizes. O método std :: transform () aplica um operador binário a todos os componentes do intervalo e salva o valor de retorno. Da mesma maneira, obtemos a matriz resultante. Também solicitamos loop para a matriz resultante.

Esta função também recebe o início da matriz de saída e um ponteiro para a função binária, que se aplica às duas matrizes definidas. A função binária aceita dois componentes (um de cada uma das duas séries, respectivamente) como argumentos. E retorna uma matriz que é transformada no tipo de dados de otp_arr.

Adição de dois vetores:

Podemos usar a função STD :: Transform para tornar a série de destino semelhante à série de entrada e executar uma alteração no local. O exemplo seguinte demonstra como utilizar traduções binárias.

#incluir
#incluir
#incluir
#incluir
int op_increase (int j) return ++ j;
int main ()
std :: vetorabc;
std :: vetorxyz;
for (int j = 1; j; j<8; j++)
abc.push_back (j*20);
XYZ.redimensione (ABC.tamanho());
std :: Transform (ABC.BEGIN (), ABC.end (), xyz.begin (), op_increase);
std :: Transform (ABC.BEGIN (), ABC.end (), xyz.BEGIN (), ABC.BEGIN (), STD :: Plus());
std :: cout <<"Output";
para (std :: vetor:: iterator it = abc.começar(); isto!= ABC.fim(); ++ it)
std :: cout <<" <<*it;
std :: cout <<'\n';
retornar 0;

Quando o programa começar, primeiro as bibliotecas serão integradas. #include biblioteca é aplicada à função de transformação std ::. #include se aplica à função STD :: Vector. #include relata o método std :: plus. A função op_increase () é aplicada para conversões para incrementar a avaliação dos parâmetros.

Integramos dois vetores e seus tipos de dados são semelhantes. Depois de declarar o loop, aplicamos a função STD :: Transform. Declaramos 8 elementos para o loop. Na função transform () que a série utilizada é (ABC.Comece, ABC.fim), que inclui todos os componentes entre ABC.Begin e ABC.fim. Aqui xyz.Comece itera para o local de início da segunda série. Std :: plus () é uma função interna e é utilizado em uma conversão binária para adicionar dois vetores. O resultado do código acima mencionado se parece com o seguinte:

Conclusão:

Este artigo explicou a função STD :: Transform. A função é utilizada de duas maneiras. Uma função unária leva apenas um componente como um argumento e devolve um valor. Uma função binária que leva dois componentes (um de cada uma das duas séries) como argumentos e depois retorna um valor resultante. A operação binária sempre se aplica a casais de componentes em duas faixas. Ele relaciona a função especificada a uma série e salva a saída em outra série.