Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c++]lambda functions

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]lambda functions

    ciao.
    ho il seguente codice di una lambda function in c++:
    codice:
     int evenCount = 0;
       for_each(v.begin(), v.end(), [&evenCount] (int n) {
          cout << n;
          evenCount++;
    })
    è possibile "catturare" piu di un parametro?
    tra le [] e passarlo alla funzione?
    come?
    gioca un ruolo l'ordine dei parametri?

    poi:
    perchè sono utili(a parte essere piu intuitive e snelle) e cosa di piu anno dei function object?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c++]lambda functions

    Originariamente inviato da giuseppe500
    è possibile "catturare" piu di un parametro?
    tra le [] e passarlo alla funzione?
    Certo, basta esplicitarlo.
    codice:
    int evenCount = 0;
    int altro_parametro=0;
    for_each(v.begin(), v.end(), [&evenCount, altro_parametro, this] (int n) {
          cout << n;
          evenCount++;
    })
    In questo caso, però, solo evenCount è catturato per reference, gli altri per copia.
    gioca un ruolo l'ordine dei parametri?
    Non mi risulta.
    perchè sono utili(a parte essere piu intuitive e snelle)
    Ti è mai capitato di dover creare una funzione o function object da usare al volo, ma essere costretto a scrivere il relativo codice, sapendo che lo userai una volta sola? Ecco, quello.

    e cosa di piu hanno dei function object?
    grazie.
    Le lambda functions sono function objects, solo che non occorre crearne apposta uno classico (C++03 style) per magari invocarlo una volta sola.

    Qui trovi una spiegazione approfondita.
    http://www.cprogramming.com/c++11/c+...-closures.html
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.