El uso de transform en el archivo de encabezado del algoritmo C ++

La función de transformación puede copiar el destino de origen especificado al nuevo destino

Hay dos versiones de transform:

El primer tipo (parámetro):

  • Dirección del iterador de inicio de destino de origen
  • Dirección del iterador final de destino de origen
  • Dirección del iterador de salida
  • Símbolo de función personalizada (función unaria)

 transform (v1.begin (), v1.end (), v2.begin (), add); // Copie v1 a v2 y ejecute el método add primero para cambiarlo y ponerlo en el contenedor v2

int add1(int x)
{
    int b = x * 10;
    return b;
}
vector<int>v1 = { 1,2,3,4,5 };
vector<int>v2(5);
transform(v1.begin(), v1.end(), v2.begin(), add1);
for (int x : v2)
	cout << x << " ";

resultado de la operación:

 

 El segundo (parámetro):

  • Inicio de destino de origen
  • Fin de destino de origen
  • Nueva dirección de inicio de destino
  • Dirección de salida dirección de inicio
  • Función binaria personalizada

  transform (v1.begin (), v1.end (), v2.begin (), v3.begin (), mean); // Su longitud debe ser la misma. La media representa el promedio, lo que significa que el promedio calculado por cada elemento de v1 y v2 se coloca en el contenedor de v3.

double mean(double x, double y)
{
	return (x + y) / 2;
}

vector<double>v1 = { 1.0,2.0,3.0,4.0,5.0 };
vector<double>v2 = { 6.0,7.0,8.0,9.0,10.0 };
vector<double>v3(5);
for (double x : v3)
    cout << x << " ";
cout << endl;
transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), mean);
for (double x : v3)
	cout << x << " ";

 Resultados del:

 Si el tercer parámetro de la primera versión es la dirección de la matriz de origen, begin () reemplazará el elemento original

Es decir, el cuarto parámetro de la segunda versión también es el mismo

Supongo que te gusta

Origin blog.csdn.net/z1455841095/article/details/82773384
Recomendado
Clasificación