IMPLÉMENTATION D'UNE STRUCTURE DE DONNÉE DYNAMIQUE ET GÉNÉRIQUE DE TYPE "VECTOR"

Signaler
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
-
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41666-implementation-d-une-structure-de-donnee-dynamique-et-generique-de-type-vector-en-c

Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
pour le tri, pourquoi pas faire un qsort tout simple...qui sera autrement plus performant..

qsort(name->elements, name->nbElements, sizeof(type), funcCompare);

Sinon, l'utilisation de telles macros génère beaucoup trop de code, et détourne l'utilité des macro. Les macro sont là pour aider à coder, pas pour essayer de faire ce que le langage ne sait pas ou ne peut faire. Il vaut mieux faire un préprocesseur sans ce cas...

De plus, il est possible d'avoir une approche générique sans passer par des macros...
Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008

Salut

Pour le realloc dans la version non windows j'y ai pensé et je viens de réaliser que se serait facile a faire donc je le modifirais.
Pour le do{...] while (0) je sais pas pourquoi je l'ai pas mis mais je le rajouterais si sa peut te fare plaisir ;-)
Je prevoirais le cas de removeAt(monvector,2,NULL) c'est une bonne idée.
Le createSVector(type,name,size) j'y ai meme pas pensé je le rajouterais aussi.
Quant au tri fusion, pour l'instant je vois pas trop comment faire, mais je vais y réfléchir ...

bref il y a du travail lol :-)

Merci beaucoup pour ton commentaire constructif, ca fait plaisir.

a bientot
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
5
salut!

tu devrais utiliser realloc plutôt que malloc pour ajouter un élément dans addElement pour la version non windows ?

pourquoi tu mets bien le do { ... } while (0) sauf dans createSVector et destroySVector ?

souvent on propose de retourner une valeur dans un pointeur, ou non si le paramètre est NULL par exemple:
removeAt(monvector,2,NULL)
ça pourrait être intéressant de prévoir ça

pourquoi tu utilises le tri à bulle et pas le quicksort, ou le tri fusion ?

pourquoi pas #define createSVector(type,name,size) ???

a+