Duda sobre las expresiones lambda en C++11

Iniciado por SrCooper, 17 Enero 2014, 20:39 PM

0 Miembros y 1 Visitante están viendo este tema.

SrCooper

Buenos días a todos, estoy siguiendo un tutorial para C++11 y me he topado con las expresiones lambda, las cuales no entiendo en aboluto  :P
Este es el código:
Código (cpp) [Seleccionar]
auto found = std::find_if(mChildren.begin(), mChildren.end(),
                              [&] (Ptr& p)->bool{return p.get() == &node; }); //Aqui esta la maldita xDD


El principio lo comprendo todo, pero cuando llego al tercer argumento de std::find_if literalmente me pierdo. Agradecería si alguien me pudiera explicar paso a paso lo que significa cada cosa, porque los tutoriales que he visto no los entiendo tampoco.

Un saludo y gracias de antemano.


amchacon

El primer parametro es el inicio, el segundo el final y el tercero es un puntero a la función que vas a usar para hacer las comparaciones.

Lo que pasa esque declarar una función aparte para luego no usarla nunca más... Las funciones lambda permiten declarar esas funciones "inline", ahorrandote escritura y espacio.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

SrCooper

Voy a necesitar un tiempo para entenderlo todo bien, aunque el artículo es muy bueno, muchas gracias :D

Un saludo y gracias por todo