comment transformer un foncteur en lambda non nommée?
Bonjour,
Prenons par exemple le problème suivant: nous voulons remplir un tableau d'entier avec des nombres aléatoires compris entre 0 et un nombre donné. Prenons donc le code suivant qui fais ce qui est demandé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <algorithm>
// foncteur qui génère des nombre aléatoires compris entre 0 et mod
struct RandMod
{
RandMod( int mod ) : mod_(mod) {}
int operator()() { return ( (int) rand() ) % mod_; }
private:
int mod_;
};
main()
{
int* buffer = new int[10];
std::generate( buffer, buffer + 10, RandMod( 1000 ) );
} |
Ok, le code ci-dessus fonctionne, mais comme je veux être à la mode, je veux utiliser des lambdas. Comment faire pour faire la même chose sans foncteur mais avec un lambda à la place?