Crear un código más legible y conciso c ++

Una de las ventajas del uso de C ++ es que se puede crear un código conciso que es fácil de leer. Debido a que usted puede ver más de un código de un solo vistazo, C ++ es a menudo más fácil de entender, así, ya que no tiene que desplazarse por la página del editor para ver toda la solución a un problema particular.

Sin embargo, existen algunos tipos de problemas C ++ que no requieren una solución bastante detallado en versiones anteriores de C ++. A partir de C ++ 11, los desarrolladores tienen una nueva técnica para la solución de estos problemas de manera que traen código C ++ de nuevo a sus raíces concisas.

Puede resolver una serie de problemas de desarrollo C ++ utilizando expresiones lambda, pero el problema típico es uno de hacer que el código sea más conciso y fácil de leer. No hay absolutamente nada malo con el Problema ejemplo muestra - que funciona muy bien como se muestra.

#include #include #include utilizando MyFunctor espacio de nombres de clase std {public: void operador () (int x) {cout lt; lt; X lt; lt; endl -}} - vacío ProcessVector (vector vect) {MyFunctor Func-for_each (vect.begin (), vect.end (), Func) -} int main () {vectorial MyVector-MyVector.push_back(1)-MyVector.push_back(2)-MyVector.push_back(3)-MyVector.push_back(4)-ProcessVector(MyVector)-}

En este caso, el ejemplo se crea una vector, myvector, y rellena con datos. A continuación, llama ProcessVector () para realizar una tarea con los datos en el vector.

La llamada a ProcessVector () crea una funtor - una clase especial de objeto que actúa como si fuera una función - llamada Func. Este es un tipo muy útil de una clase. Por ahora, todo lo que necesitas saber es que se trata de un tipo especial de una clase que actúa como una función.

los para cada() algoritmo es parte de la biblioteca estándar. Procesa cada elemento vect, el vector pasa a ProcessVector (), comenzando en el primer elemento (definido por vect.begin ()) Y terminando con el último elemento (definido por vect.end ()) usando Func.

Cuando nos fijamos en MyFunctor, ves una definición para un operador que requiere una sola int de entrada, X. Todo lo que el código hace es de salida X a la consola. Así que ya ves la siguiente salida de este ejemplo.

1234



» » » » Crear un código más legible y conciso c ++