La generación de casos de prueba para programas de array puede ser un proceso engorroso. Pero las funciones de generar y generar_n en STL (Biblioteca de plantillas estándar) son útiles para llenar la array con valores aleatorios.
- generar()
Las funciones de generación asignan valores aleatorios proporcionados llamando a la función generadora ‘gen’ a los elementos en el rango [comienzo, fin). Tenga en cuenta que el inicio está incluido en el rango, pero el final NO está incluido.
El siguiente código demuestra la implementación de generar:
// C++ program to demonstrate generate function in STL
#include <bits/stdc++.h>
using
namespace
std;
// function to generate random numbers in range [0-999] :
int
randomize()
{
return
(
rand
() % 1000);
}
int
main()
{
// for different values each time we run the code
srand
(
time
(NULL));
vector<
int
> vect(10);
// declaring the vector
// Fill all elements using randomize()
generate(vect.begin(), vect.end(), randomize);
// displaying the content of vector
for
(
int
i=0; i<vect.size(); i++)
cout << vect[i] <<
" "
;
return
0;
}
Producción :
832 60 417 710 487 260 920 803 576 58
NOTA: La salida sería diferente cada vez que ejecutamos el código debido a srand. Si eliminamos srand, obtendríamos el mismo conjunto de números aleatorios cada vez que ejecutamos el código.
- generar_n()
El generar_n hace el mismo trabajo que generar hasta n elementos a partir del elemento al que apunta el iterador de inicio.
El siguiente código demuestra el funcionamiento de generate_n :// C++ program to demonstrate generate_n() function in STL
#include <bits/stdc++.h>
using
namespace
std;
// function to generate random numbers in range [0-999] :
int
randomize()
{
return
(
rand
() % 1000);
}
int
main()
{
// for different values each time we run the code
srand
(
time
(NULL));
vector<
int
> vect(10);
// declaring the vector
// Fill 6 elements from beginning using randomize()
generate_n(vect.begin(), 6, randomize);
// displaying the content of vector
for
(
int
i=0; i<vect.size(); i++)
cout << vect[i] <<
" "
;
return
0;
}
Producción :
177 567 15 922 527 4 0 0 0 0
NOTA: Aquí también, la salida sería diferente cada vez que ejecutamos el código debido a srand. Si eliminamos srand, obtendríamos el mismo conjunto de números aleatorios cada vez que ejecutamos el código.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA