begin process at 2012 05 27 21:12:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > UTILISATION DE LA STL

UTILISATION DE LA STL


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Débutant Date de création :09/06/2005 Vu / téléchargé :4 815 / 365

Auteur : petifa

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Ce programme a été fait pour apprendre l'utilisationde la STL.
Il y a l'utilisation de conteneur, des vector....

Bon a vous de voir tout ca.
Ca pourrai peut-être vous être utile qui sait !!!!

Il doit surement pouvoir être améliorer alors toutes les suggestions sont les bienvenues.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

Commentaires et avis

Commentaire de Hylvenir le 09/06/2005 23:52:27

Salut,
alors quelques remarques dans le désordre de la lecture des sources.

1. On n'ouvre jamais un namespace dans un include
cf Image.h  lign 16.

2. Un destructeur de classe non virtuel ne faisant rien... autant pas le mettre.

3. Le constructeur Image( char*, int ) devrait être en fait Image( const char*, int ) sinon un compilo moderne te fera au moins un warning sur quelque chose du genre Image img( "img.jpg", 1 );
"imp.jpg" étant un const char[] en C++.

4. Tes accesseurs devraient être const ( cf Image.getTaille )

4. Tu devrais prendre le réflexe d'initialiser tes variables de classe comme suit :
Image::Image() : _Taille( 0 ) {}  
et pas
Image::Image() { _Taille = 0; }
// Idem pour pour l'autre constructeur

C'est mieux pour certains objets (je ne m'étends pas).

5. Image.cpp ligne 61. pourquoi utilises-tu compare
au lieu d'un simple == ?

6. Pour un tuto sur la STL, tu aurais pas utiliser for_each
pour ta fonction VersMinuscule.

7. Base.cpp lign 40. Tu devrais passer une référence constante de Database au lieu d'une copie probable.

8. Base.cpp ligne 40. Utilise ++ _Pair au lieu de _Pair ++, c'est une bonne habitude ça peut être que plus rapide.

9. Base.cpp ligne 89, 93. Tu pourrais ne faire qu'un appel à equal_range. genre
pair< Database::iterator, Database::iterator > found
= _Base.equal_range( ... )
if ( found.first == found.end() )
...

Voilà en gros sans trop rentrer dans les détails.
A+

Commentaire de Arnaud16022 le 25/06/2005 22:22:56

-> hylvenir:

4. Tu devrais prendre le réflexe d'initialiser tes variables de classe comme suit :
Image::Image() : _Taille( 0 ) {}  
et pas
Image::Image() { _Taille = 0; }
// Idem pour pour l'autre constructeur

C'est mieux pour certains objets (je ne m'étends pas).


tu pourrais t'étendre stp? je comprends pas pk tu dis ca, ce que ca change kwa.

8. Base.cpp ligne 40. Utilise ++ _Pair au lieu de _Pair ++, c'est une bonne habitude ça peut être que plus rapide.

pas d'accord, au pt de vue asm ca restera tjs "inc ma_variable"

merci pr tes commentaires...
++
ad

Commentaire de Hylvenir le 26/06/2005 02:56:10

C'est parti ( malgré l'heure tardive )

4.  La différence entre : Image::Image() { _Taille = 0; }
et  Image::Image() : _Taille( 0 ) {} ?

Imaginons que _Taille soit une variable d'une classe Taille
qui a un constructeur à partir d'un entier (et sûrement un opérateur d'affectation)
Dans le premier cas, il y aura appel au constructeur par défaut de la classe Taille puis appele à l'opérateur d'affectation.
Dans le deuxième cas, seul le constructeur à partir d'un entier sera appelé. Le permier cas revient en fait à écrire
Image::Image() : _Taille() { _Taille = 0; }
Imagine si le constructeur par défaut est un peu lourd ou fait des choses inutiles pour finalement être recalculé à partir d'une taille à 0. ( std::string est un exemple )

8. la différence entre a++ et ++a sur un itérateur.
le premier te renvoie un nouvel itérateur temporaire puis incrémente ton itérateur.  le deuxième incrémente ton itérateur et t'en renvoie une référence.
Dans le premier cas, tu as une création d'itérateur qui ne te sert pas.

J'espère que ces explications te vont.

Commentaire de Arnaud16022 le 26/06/2005 10:18:33

oki merci tout plein.
malgré les 3 heures du mat' j'ai compris ^^
++
ad

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales