C ++ stdcopy

C ++ stdcopy
“Cuando se especifican las posiciones de inicio y finalización de la fuente, todos los elementos en este rango se copiarán al destino especificado. El C ++ STL proporciona varias variantes de copia () que permiten que las operaciones de copia se realicen de varias maneras, cada una con un uso único. Todos estos se describen en el encabezado del algoritmo. Estas funciones se explican en este artículo para su uso en programación regular."

Ejemplo 1: Uso del método Copy () y Copy_n ()

Copy (start_iter1, end_iter1, start_iter2):La función de copia general, copia (strat_iter1, end_iter, start_iter2), se usa para mover un clúster de un contenedor a otro. Necesita tres argumentos:

Inicio iter1: el punto de partida para copiar elementos se indica mediante el puntero inicial, que apunta al comienzo del contenedor de origen.

END ITER: el dispositivo de señalización al final del contenedor de origen, desde el cual se deben copiar elementos.

Inicio iter2: la referencia al inicio del contenedor de destino, desde el cual se deben copiar elementos.

copy_n (start_iter1, num, start_iter2): El número de componentes que deben copiarse en el contenedor de destino se puede determinar utilizando este método de copia. Además, acepta los siguientes tres argumentos:

Iniciar ITER1: el identificador para el inicio del contenedor de origen, desde el cual se deben copiar elementos.

NUM: Un entero que indica el número de números que se transferirán al contenedor de destino, comenzando con Start ITER1. Cuando se proporciona un número negativo, no pasa nada.

Iniciar ITER2: el punto de partida del contenedor de destino, identificado por la dirección de inicio de la dirección, es donde los elementos deben comenzar a copiar.

El código para esta ilustración se adjunta en la captura de pantalla fijada.

En el ejemplo aquí, hemos incluido tres bibliotecas principales de C++. Este algoritmo de la biblioteca juega un papel vital en este programa, ya que proporciona acceso a la función STD :: Copy. Luego, utilizamos el espacio de nombres en el programa. La declaración de uso del espacio de nombres simplemente indica que todos los objetos en el espacio de nombres de STD deben estar disponibles en el alcance donde está presente sin requerir el std :: prefijo.

Después de eso, tenemos un método principal del programa dentro del cual hemos declarado una variable "vec_1" de una clase vectorial y lo inicializamos con el conjunto de valores numéricos. También hemos definido otras dos variables como "VEC_2" y "VEC_3". Hemos declarado estas variables con los vectores de destino. Luego, implementamos el método Copy (), que toma tres argumentos "VEC_1.comenzar "," vect_1.fin ", y el" vect_2.comenzar a copiar los dos primeros valores de los vectores.

Para imprimir los vectores copiados, utilizamos el bucle for, que cicló sobre cada elemento vectorial copiado y mostramos los elementos vectoriales. A continuación, hemos usado el método Copy_n (), que mostrará los primeros cinco elementos de los vectores. Para la impresión, los elementos vectoriales copiados para bucle se utilizan como se indica anteriormente.

La salida generada por el método copy () y copy_n () es el siguiente:

Ejemplo 2: usando el método Copy_if () y Copy_backward ()

copy_if (): como lo implica el nombre, esta función copia de acuerdo con el resultado de una "condición."Esto se da con la ayuda de una función que ofrece un valor booleano como cuarto argumento. Esta función requiere cuatro argumentos, tres de los cuales son idénticos a los de la copia () y una función adicional que, si devuelve verdaderas, determina si un número está duplicado o no.

copy_backward (): al usar esta función, los elementos se copian en el contenedor de destino hacia atrás hasta que no se hayan copiado todos los números. Start_iter2 es donde comienza el proceso de copia, pero avanza hacia atrás. Utiliza las mismas defensas que una copia (), también.

El código para esta ilustración se adjunta en la captura de pantalla fijada.

En el primer paso de este programa, hemos insertado nuestras bibliotecas para obtener las funciones de C ++. Luego, declaramos el vector como V1 e inicializamos el vector con los enteros. Hemos declarado otras variables como V2 y V3, que son los vectores de destino. Después de eso, tenemos la función copy_if () que solo copia los números impares de los vectores. A continuación, la copia hacia atrás () se usa para copiar los primeros tres elementos, con la cuarta posición final. Hemos impreso los elementos vectoriales copiados con la ayuda de For Loop.

La salida generada por el método copy_if () y copy_backward () es el siguiente:

Ejemplo 3: Uso del método Inserter ()

Compramos la sintaxis inserter () antes de realizar la acción copy ().

# copy (Strat_iter1, End_iter1, Inserter (Container & X, Typename Container :: Iterator IT));

Utilizamos inserter () como el destino al que deseamos transferir los elementos del contenedor. El inserter () necesita dos entradas. El primero es un contenedor de tipo arbitrario, mientras que el segundo es un iterador dentro del contenedor.

Devuelve una instancia de Insert Iterator que actualmente funciona con cualquier tipo de contenedor. Usando esta función de envoltura, se pueden crear instancias de INTERT iterator. Puede ser difícil y obstaculizar la programación genérica de tener que conocer el tipo total exacto del contenedor al escribir el nombre del porcentaje de iterador. Al usar esta función, puede beneficiarse de la deducción de parámetros de plantilla automática y hacer que el compilador coincida automáticamente con los tipos correctos para usted.

El código para esta ilustración se adjunta en la captura de pantalla fijada.

Aquí, hemos comenzado con nuestro método principal. Dentro de él, hemos declarado el vector V1 y establecemos los vectores con los valores numéricos. Desde el iterador C ++, hemos creado el objeto "ITR". Además, hemos declarado otra variable, v2, en nuestro programa. Luego, invocamos el inserto () dentro de la función de copia, que copia los elementos vectoriales a través de la iteración. Al final, tenemos el bucle for, que imprimirá los elementos copiados de los vectores especificados.

La salida generada por el método Inserter () es el siguiente:

Conclusión

En el artículo, hemos discutido las funciones de copia std ::. Se demuestran cuatro métodos con la sintaxis y el programa de ejemplo. Los parámetros y funciones de cada enfoque difieren. Estas técnicas son accesibles en el archivo de encabezado para el algoritmo.