Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Asigna los valores generados por un objeto de función a un número especificado de elementos en un intervalo y vuelve a la posición una más allá del valor asignado pasado.
template<class OutputIterator, class Diff, class Generator>
void generate_n(
OutputIterator _First,
Diff _Count,
Generator _Gen
);
Parámetros
_First
Un iterador de salida que dirige la posición del primer elemento del intervalo al que los valores deben estar asignados._Count
Un con signo o un entero sin signo tipo especificando el número de elementos para asignar un valor por la función de generador._Gen
Un objeto de función que se denomina sin argumentos que se utiliza para representar los valores que se deben asignar a cada uno de los elementos del intervalo.
Comentarios
El objeto de la función se invoca para cada elemento del intervalo y no debe devolver el mismo valor cada vez que se llama.Puede, por ejemplo, leer de un archivo o hacer referencia y modificar un estado local.El tipo de resultado de generador debe poder convertirse al tipo de valor de iteradores hacia delante del intervalo.
El intervalo hace referencia debe ser válido; todos los punteros deben ser dereferenceable y, dentro de la secuencia, la posición última debe ser accesible de primera por el aumento.
La complejidad es lineal, con exactamente las llamadas de _Count el generador que es necesario.
generate_n tiene dos formularios relacionados:
Para obtener información sobre cómo estas funciones se comportan, vea Iteradores comprobados.
Ejemplo
// alg_generate_n.cpp
// compile with: /EHsc
#include <vector>
#include <deque>
#include <algorithm>
#include <iostream>
#include <ostream>
int main() {
using namespace std;
// Assigning random values to vector integer elements
vector <int> v1 ( 5 );
vector <int>::iterator Iter1;
deque <int> deq1 ( 5 );
deque <int>::iterator d1_Iter;
generate_n ( v1.begin ( ), 5 , rand );
cout << "Vector v1 is ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
// Assigning random values to deque integer elements
generate_n ( deq1.begin ( ), 3 , rand );
cout << "Deque deq1 is ( " ;
for ( d1_Iter = deq1.begin( ) ; d1_Iter != deq1.end( ) ; d1_Iter++ )
cout << *d1_Iter << " ";
cout << ")." << endl;
}
Output
Vector v1 is ( 41 18467 6334 26500 19169 ).
Deque deq1 is ( 15724 11478 29358 0 0 ).
Requisitos
encabezado: <algoritmo>
espacio de nombres: std