Cours langage C++ de base sujets des exercices

Objectif

Cet exercice apporte quelques compléments sur l’utilisation élémentaires de la STL (Standard Template Library).
En particulier nous récapitulons les collections (containers) disponibles et introduisons deux concepts clés de la STL:
les itérateurs et les algorithmes.

Code fourni

Pour démarrer l’exercice, vous aurez besoin de télécharger depuis le site Web le fichier
Strings_and_Algos.zip et de le décompresser à coté des autres exercices.
Le répertoire obtenu (Strings_and_Algos) contiendra alors les fichiers suivants :
-une Makefile, prête pour le TD tout entier ;
– extra_string.h, extra_string.cpp et test_string.cpp : les prototypes et les (squelettes) de la définition des fonctions demandées dans les exercices 3.1 et 3.3 ;
– stl_print.h, test_print.cpp, camille.txt : ces fichiers sont utilisés (et décrits) dans l’exercice 3.4.

Quelques fonctions complémentaires sur les strings

Dans une documentation de la STL (vous devriez assez facilement ent trouver une sur le Web), consulter la liste des fonctions-membres disponibles de la classe string. Si vous comparez à la classe String de Java, vous constaterez que certaines fonctionnalités sont manquantes.
Votre mission est ici d’en réaliser quelques unes. Bien entendu, vous
ne pouvez pas modifier la classe string : vous implémenterez donc ces fonctionnalités sous forme de fonctions «libres».
Les prototypes de ces fonctions sont donnés dans le fichier fourni extra_string.h. Dans ce premier exercice, on ne demande de réaliser que les trois fonctions suivantes :
bool string_starts_with(const string& s, const string& prefix)
vrai si le début de la chaîne s est la chaîne prefix ;
bool string_ends_with(const string& s, const string& suffix)
vrai si la f in de la chaîne s est la chaîne suffix ;
string trim (const string& s, const string& delims =  » \t\n\f\v »)
retourne une copie de s où toutes les occurrences initiales et finales des caractères de delims ont été supprimés (mais pas les occurrences au milieu) ;par exemple trim(« \t \f\thello\t\nworld\f \v »)
retourne la chaîne « hello\t\nworld ». Notez que delims a une valeur par défaut qui peut évidemment être modifiée lors de l’appel.
Implémentez ces fonctions (dans extra_string.cpp) et testez-les (dans test_string.cpp). Ensuite, vous n’aurez plus qu’à faire make test_string.exe pour obtenir votre exécutable.

Introduction aux containers, itérateurs et algorithmes de la STL

Nous avons déjà introduit certains éléments de la STL au cours du TD 2 (classe string, iostream et vector). La STL est aussi brièvement décrite dans le chapitre 6 du cours.
Enfin on pourra se reporter au site Web de ce cours ainsi qu’à l’un des sites fournissant une documentation en ligne de la STL (par exemple SILICON GRAPHICS, www.sgi.com, ou STLPORT, www.stlport.org).
Nous rappelons ici les éléments fondamentaux nécessaires à la compréhension des exercices suivants (3.4 et 3.4).

Collections (containers) de la STL

La STL définit un ensemble de classes génériques qui permettent de représenter des collec-tions homogènes de valeurs. « Homogène » signifie que tous les éléments de la collection sont de même type ; « valeur » indique que les éléments en question sont copiés dans la collection.
La STL définit plusieurs types de collections qui peuvent différer par leur propriétés logi-ques (celles vues de l’utilisateur) : ordonnées ou non, mode de recherche et d’addition d’un éléments, etc. Elles diffèrent aussi par leur structure interne d’implémentation : listes chaînées, éléments consécutifs ou non en mémoire, arbre binaire, etc. La version initiale de la STL définit dix types de collections résumés dans le tableau ci-après..

……

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Cours C/C++ (612 KO) (Cours PDF)
Cours langage C de base

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *