Un changement d'algorithme par contre permet des gains �norme de performances ! On passant d'une liste simplement cha�n�e � une liste doublement cha�n�e je passe d'un calcul de 3.5 secondes � 20 millisecondes !!! Simplement car effacer un �l�ment dans une liste cha�n�e demande � conna�tre l'�l�ment pr�c�dent, il faut donc parcourir la liste ... quand tu as 1 million d'�l�ment, �a prend le temps qu'il faut :-)
Oui le meilleur moyen de faire du code rapide
c'est de faire une analyse du probleme et d'en d�duire
la structure de donn�e la moins mauvaise � utiliser.
Donc conseil au programmeur d�butant: n'apprend pas de quel cot� du if il faut mettre le bloc le plus probable, cela te donnera une fausse id�e que tu maitrises la machine. Par contre prend des cours d'algorithmique de base ou lis un bouquin (style introduction a l'algorithmique de Thomas Cormen).
On m'a d'ailleurs dit qu'il fallait plut�t utiliser "const int cst_x = 4;" que "#define cst_x (4)". Je doute. Mon probl�me est surtout de placer des "const type var=valeur;" dans un fichier .H ... "Impossible de pr�compiler l'ent�te car il contient du code" :-( Et si je mets un "extern" devant, et que je le d�clare avec sa valeur dans le .CPP ... Ca marche pas, il me dit que la variable n'est pas d�finit ou je ne sais pas quoi :-/
Entre les const et les define c'est un peu la guerre.
Par contre ce qui est sur c'est qu'on peut toujours remplacer
une suite de define par un type enum. C'est une maniere de typer plus fortement un entier, et en plus une
variable de type enum apparaitra sous son nom propre dans
le debogueur, ce qui peut etre un gain de temps.
Pour ce qui est de la d�finition des constantes globales:
extern const type mavar; // dans le .h
et
const type mavar = .. ; // dans le cpp
normalement ca marche.
Quel est ton code et quel est ton message d'erreur? (a la compilation ou lors de l'�dition de liens?)
LeGreg
Partager