Ce livre s’adresse à tout développeur désireux d’apprendre le langage C++, dans le cadre de ses études ou pour consolider son expérience professionnelle. Le premier chapitre présente les bases de la syntaxe du langage ainsi que l’organisation des programmes. Le chapitre suivant explique les notions clés pour créer ses premières applications : gestion de la mémoire, pointeurs, bibliothèques standards… Le troisième chapitre détaille la structuration des données, conduisant à la programmation...
Ce livre s’adresse à tout développeur désireux d’apprendre le langage C++, dans le cadre de ses études ou pour consolider son expérience professionnelle.
Le premier chapitre présente les bases de la syntaxe du langage ainsi que l’organisation des programmes. Le chapitre suivant explique les notions clés pour créer ses premières applications : gestion de la mémoire, pointeurs, bibliothèques standards… Le troisième chapitre détaille la structuration des données, conduisant à la programmation orientée objet et aux mécanismes spécifiques au langage (héritage, modèles de classes…). Vient ensuite l’étude de la STL (Standard Template Library), présentée à travers ses mécanismes les plus importants : les chaînes, les structures de données et les parcours de collection. Les évolutions du C++ moderne telles que les lambda-expressions, les smart-pointers et l’inférence de type sont étudiées en préalable à la bibliothèque boost. Un chapitre ouvre C++ sur ses univers, tels que l’environnement managé .NET C++ CLI et les applications Win32.
Comme illustration des capacités de C++ à créer tout type d’applications, l’auteur propose un exemple complet de tableur graphique, un interprète du langage tiny-Lisp, un programme de compression de fichiers ou encore un réseau de neurones appliqué à un démonstrateur de calculs.
L’ouvrage se termine par un chapitre appliquant des algorithmes essentiels en C++ traitant de la reconnaissance de motifs, la recherche dans un graphe et de compression de données.
Le code source des exemples du livre est disponible en téléchargement sur www.editions-eni.fr. Les exemples sont réalisés avec Visual Studio Community Edition sous Windows et avec Eclipse sous Linux Ubuntu.
2. Lecture avec déplacement : l’algorithme Boyer-Moore
3. Méthode pour les motifs auto répétitifs: l’algorithme KMP
Recherche du plus court chemin
1. Présentation des graphes
a. Incidence et adjacence
b. Chemin d’un graphe
c. Le parcours de graphe en largeur d’abord
2. L’algorithme de Dijkstra
3. Utilisation d’une méthode avec heuristique: l’algorithme A*
Comprimer des fichiers
1. Approche par statistique : l’algorithme d’Huffman
a. Implémentation du codage
b. Compression du fichier
c. Décompression
2. Approche par dictionnaire : l’algorithme LZW
a. Fonctionnement de l’algorithme
b. Implémentation du dictionnaire
c. Dimensionnement et gestion du dictionnaire
d. Programme de compression
e. Programme de décompression
Implémenter un réseau de neurones en C++
1. Un réseau de neurones pour l’algorithmique?
2. Implémentation d’un réseau de neuronesen C++
3. Une classe abstraite pour piloter le réseau
4. Modéliser une porte logique
5. Un moteur d’inférence pour l’arithmétiqueentière
a. Apprentissage des symboles
b. Utilisation du réseau
Brice-Arnaud GUÉRIN
Ingénieur ESIEA, Brice-Arnaud GUERIN est Directeur de programmes chez Kantar et auteur aux Editions ENI depuis 2003. Ses compétences en développement et son désir de partager ses connaissances l'ont naturellement conduit à l'écriture d'ouvrages consacrés à la conduite de projets et à la réalisation d'applications (C++, .NET, PHP).