Créer ++ code plus lisible et c concise

Un des avantages de l'utilisation de C ++ est que vous pouvez créer un code concis qui est facile à lire. Parce que vous pouvez voir plus du code d'un seul regard, C ++ est souvent plus facile à comprendre ainsi parce que vous ne disposez pas de faire défiler la page de l'éditeur pour voir toute la solution à un problème particulier.

Cependant, il ya certains types de problèmes de C qui ne nécessitent une solution plutôt bavard dans les versions antérieures de C ++. A partir de C ++ 11, les développeurs ont une nouvelle technique pour résoudre ces problèmes de manière à apporter le code C de revenir à ses racines concises.

Vous pouvez résoudre un certain nombre de problèmes de développement de C en utilisant des expressions lambda, mais le problème typique est celui de rendre le code plus concis et plus facile à lire. Il n'y a absolument rien de mal avec le Difficulté exemple ci - il fonctionne très bien comme indiqué.

#comprendre #comprendre #comprendre utilisant MyFunctor namespace std classe {public: void operator () (int x) {cout lt; lt; X lt; lt; endl -}} - ProcessVector void (vecteur vect) {MyFunctor Func-for_each (vect.begin (), vect.end (), Func) -} int main () {vecteur MyVector-MyVector.push_back(1)-MyVector.push_back(2)-MyVector.push_back(3)-MyVector.push_back(4)-ProcessVector(MyVector)-}

Dans ce cas, l'exemple crée une vecteur, myVector, et le remplit avec des données. Il appelle ensuite ProcessVector () pour effectuer une tâche avec les données dans le vecteur.

L'appel à la ProcessVector () crée un foncteur - une classe d'objet spécial qui agit comme si elle est une fonction - nommé Func. Ceci est un type extrêmement utile d'une classe. Pour l'instant, tout ce que vous devez savoir est qu'il est un type spécial d'une classe qui agit comme une fonction.

La pour chaque() algorithme est partie de la bibliothèque standard. Il traite chaque élément vect, le vecteur passé à ProcessVector (), en commençant par le premier élément (défini par vect.begin ()) Et en terminant par le dernier élément (défini par vect.end ()) En utilisant Func.

Quand vous regardez MyFunctor, vous voyez une définition pour un opérateur qui nécessite une seule int entrée, X. Tout ce que fait le code est sortie X à la console. Donc, vous voyez la sortie suivante de cet exemple.

1 2 3 4

» » » » Créer ++ code plus lisible et c concise