CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008
-
20 juil. 2007 à 23:44
CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008
-
12 mai 2008 à 15:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008 12 mai 2008 à 15:31
Je me suis trompe et personne ne s'en ai rendu compte :)
Pour vider le tableau dynamique, je met : vecteur[0].empty();
Ce qui est faux : empty renvoie un bool si les ocnteneur standard est vide.
Je voulais mettre vecteur[0].clear();
clear vide bien le tableau ... :)
Bonne prog
Colin CHARGY
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 22 juil. 2007 à 18:13
C'est sûr que si c'est pour parser un fichier au chargement ce n'est pas très critique niveau temps d'execution
par contre si ton "monde" commence à devenir vraiment grand avec un fichier de quelques Mo ça risque de faire un peu long ^__^
passer quelques minutes à optimiser ce genre de code t'apportera quelques connaissances niveau utilisation de la stl qui est très pratique
ps: c'est un très bon livre que tu as entre les mains
CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008 22 juil. 2007 à 11:07
Salut,
Tout ce que tu dis est vrai ...
Ce code sert pour charger la contenu du monde dan un jeu durant le phase de chargement donc je suis pas à quelques millisecondes près...
Ceci dit, je suis inexcusable quand même puisque j'ai sous la main "Le language C++" de Bjarne Stroustrup dans lequel tout ceci est expliquer et en plus je l'ai lu...
Je n'ai pas l'habitude d'utiliser ni push, ni les itérateurs, ni find ...
Par contre, il est vrai que j'utilise des resize à tut bout de champs...
J'ai commencer par écrire cette fonction avec find, mais sans résultats, c'est pour cela que j'ai décider de faire caractère par caractère.
Quand j'aurais du temp, je la réécrirais en suivant tes conseils ...
Merci ^^
Colin CHARGY
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 21 juil. 2007 à 23:51
salut,
intéressante source mais je t'invite à quelques corrections :
- évites de passer un pointeur vers vctor en paramètre mais plutot une référence, cela t'évitera de faire un test que tu ne fais pas : vérifier que le pointeur passé en paramètre n'est pas nul
- c'est absurde d'utiliser des resize à tout bout de champs, tu ne connais pas la méthode push ? resize n'est à utiliser que si tu connais la taille de vector que tu veux
- normalement on parcours une string, un vector, ect... ce qu'on appelle les conteneurs de la stl avec des itérateurs
- pour trouver un caractère dans une string, la classe possède une méthode nommé find
voilà de quoi optimiser ton code ;-)
CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008 20 juil. 2007 à 23:44
Voili voilou...
On pourrait replacer tous les "->at(qqch)" par "[qqch]" pour accélérer le code mais enlever le contrôle des index ...
Il serait aussi intéressant de stocker "vecteur->size() - 1" dans une variable pour y accéder plus vite ...
12 mai 2008 à 15:31
Pour vider le tableau dynamique, je met : vecteur[0].empty();
Ce qui est faux : empty renvoie un bool si les ocnteneur standard est vide.
Je voulais mettre vecteur[0].clear();
clear vide bien le tableau ... :)
Bonne prog
Colin CHARGY
22 juil. 2007 à 18:13
par contre si ton "monde" commence à devenir vraiment grand avec un fichier de quelques Mo ça risque de faire un peu long ^__^
passer quelques minutes à optimiser ce genre de code t'apportera quelques connaissances niveau utilisation de la stl qui est très pratique
au cas où cela t'intéresses, il y a un très bon cours de C++ en français téléchargeable ici :
http://casteyde.christian.free.fr/cpp/cours/cours_cpp-1.40.6-html.zip
dont la partie II traites de la stl
ps: c'est un très bon livre que tu as entre les mains
22 juil. 2007 à 11:07
Tout ce que tu dis est vrai ...
Ce code sert pour charger la contenu du monde dan un jeu durant le phase de chargement donc je suis pas à quelques millisecondes près...
Ceci dit, je suis inexcusable quand même puisque j'ai sous la main "Le language C++" de Bjarne Stroustrup dans lequel tout ceci est expliquer et en plus je l'ai lu...
Je n'ai pas l'habitude d'utiliser ni push, ni les itérateurs, ni find ...
Par contre, il est vrai que j'utilise des resize à tut bout de champs...
J'ai commencer par écrire cette fonction avec find, mais sans résultats, c'est pour cela que j'ai décider de faire caractère par caractère.
Quand j'aurais du temp, je la réécrirais en suivant tes conseils ...
Merci ^^
Colin CHARGY
21 juil. 2007 à 23:51
intéressante source mais je t'invite à quelques corrections :
- évites de passer un pointeur vers vctor en paramètre mais plutot une référence, cela t'évitera de faire un test que tu ne fais pas : vérifier que le pointeur passé en paramètre n'est pas nul
- c'est absurde d'utiliser des resize à tout bout de champs, tu ne connais pas la méthode push ? resize n'est à utiliser que si tu connais la taille de vector que tu veux
- normalement on parcours une string, un vector, ect... ce qu'on appelle les conteneurs de la stl avec des itérateurs
- pour trouver un caractère dans une string, la classe possède une méthode nommé find
voilà de quoi optimiser ton code ;-)
20 juil. 2007 à 23:44
On pourrait replacer tous les "->at(qqch)" par "[qqch]" pour accélérer le code mais enlever le contrôle des index ...
Il serait aussi intéressant de stocker "vecteur->size() - 1" dans une variable pour y accéder plus vite ...
Voilà
Colin CHARGY