std::generate_n
De cppreference.com
<metanoindex/>
<tbody> </tbody>| Definido no cabeçalho <algorithm>
|
||
template< class OutputIt, class Size, class Generator > void generate_n( OutputIt first, Size count, Generator g ); template< class OutputIt, class Size, class Generator > OutputIt generate_n( OutputIt first, Size count, Generator g ); |
(até C++11) (desde C++11) |
|
Atribui valores, gerados pela
g dada função de objeto, para os elementos count primeira no início gama de first, se count>0. Não faz nada de outra forma.Original:
Assigns values, generated by given function object
g, to the first count elements in the range beginning at first, if count>0. Does nothing otherwise.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Parâmetros
| first | - | o início do intervalo de elementos para gerar
Original: the beginning of the range of elements to generate The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |||||||||
| count | - | número de elementos de geração
Original: number of the elements to generate The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |||||||||
| g | - | generator function object that will be called. The signature of the function should be equivalent to the following: <tbody> </tbody>
The type | |||||||||
| Type requirements | |||||||||||
-OutputIt must meet the requirements of OutputIterator.
| |||||||||||
Valor de retorno
(Nenhum) (até C++11)
Original:
(none) (até C++11)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Iterator um passado o último elemento atribuído se
count>0, first contrário. (desde C++11)Original:
Iterator one past the last element assigned if
count>0, first otherwise. (desde C++11)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Complexidade
Exatamente
count invocações de g() e atribuições, para count>0.Original:
Exactly
count invocations of g() and assignments, for count>0.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Possível implementação
template< class OutputIt, class Size, class Generator >
OutputIt generate_n( OutputIt first, Size count, Generator g )
{
for( Size i = 0; i < count; i++ ) {
*first++ = g();
}
return first;
}
|
Exemplo
O código a seguir preenche um array de inteiros com números aleatórios .
Original:
The following code fills an array of integers with random numbers.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <cstddef>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
const std::size_t N = 5;
int ar[N];
std::generate_n(ar, N, std::rand); // Using the C function rand()
std::cout << "ar: ";
std::copy(ar, ar+N, std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
}
Saída:
52894 15984720 41513563 41346135 51451456
