cs_Sunglasses
Messages postés8Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention11 juillet 2008 29 févr. 2008 à 09:57
J'utilise déjà ma propre fonction random :-) (voir dans les fichiers rand.cpp et rand.hpp). C'est une petite bibliothèque de fonctions aléatoire qu'on nous avait fait faire en TP mais j'ai juste laissé la fonction dont j'avais besoin dans mon programme.
Merci !
cs_exar
Messages postés286Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention22 avril 20121 29 févr. 2008 à 04:42
Oui, c'est sur !
A noter que tu peux également utiliser ta propore fonction random.
Exemple:
int main(){
vector v;
// ici, on remplit le vecteur
// appel de random_shuffle
random_shuffle(v.begin(), v.end(), prandom);
...
}
Vraiment, je te conseille d t'intéresser à la STL, c'est très pratique !
Bonne continuation !
cs_Sunglasses
Messages postés8Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention11 juillet 2008 28 févr. 2008 à 20:08
C'est sûr qu'on peut réutiliser ce qui existe déjà, mais je fais ça pour apprendre et pour m'entrainer (Et puis aussi parce que j'aime bien réinventer la roue, oui, je l'avoue :-) ).
Faudra que je m'intéresse de plus près à la STL.
En tout cas merci du commentaire !
cs_exar
Messages postés286Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention22 avril 20121 27 févr. 2008 à 15:00
Au fait, j'ai fait ça en deux minutes, il faut contrôler que le vecteur n'est pas vide avant de tenter de renvoyer une valeur...
Bon courage !
*********
«Asseyez-vous une heure près d'une jolie fille, cela passe comme une minute. Asseyez-vous une minute sur un poêle brûlant, et cela passe comme une heure. C'est cela la relativité.»
Albert Einstein.
cs_exar
Messages postés286Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention22 avril 20121 27 févr. 2008 à 14:50
Plus court avedc la STL:
#ifndef __VECTORALEA_H__
#define __VECTORALEA_H__
#include <vector>
#include
using namespace std;
template<class T>
class VectorAlea: public vector<T>{
public:
T Alea();
};
template<class T>
T VectorAlea<T>::Alea(){
VectorAlea<T> tmp=*this;
random_shuffle(tmp.begin(), tmp.end());
T ret=tmp.back();
tmp.pop_back();
*this=tmp;
return ret;
}
#endif
*********
«Asseyez-vous une heure près d’une jolie fille, cela passe comme une minute. Asseyez-vous une minute sur un poêle brûlant, et cela passe comme une heure. C’est cela la relativité.»
Albert Einstein.
cs_Sunglasses
Messages postés8Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention11 juillet 2008 26 févr. 2008 à 20:49
Merci, voilà qui est corrigé (ainsi - au passage - que la fonction de suppression qui ne vérifiait pas l'état de la classe, car il faut que l'on ne soit pas en cours de tirage pour modifier le vecteur).
Mais le "delete vect1" ne marche-t-il pas quand même ? en tout cas mon compilo l'accepte, et à l'exécution, on dirait que ça ne pose pas de problème. (ou alors une fuite de mémoire peut-être ?)
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 26 févr. 2008 à 20:06
A l'allocation dynamique de tableaux new _vect1[size] correspond l'opérateur libération de tableaux delete[] vect1.
29 févr. 2008 à 09:57
Merci !
29 févr. 2008 à 04:42
A noter que tu peux également utiliser ta propore fonction random.
Exemple:
#include
#include <functional>
#include <vector>
...
using namespace std;
ptrdiff_t random(prtdiff_t i){
return srand()%i;
}
ptrdiff_t (*prandom)(ptrdiff_t)=random;
int main(){
vector v;
// ici, on remplit le vecteur
// appel de random_shuffle
random_shuffle(v.begin(), v.end(), prandom);
...
}
Vraiment, je te conseille d t'intéresser à la STL, c'est très pratique !
Bonne continuation !
28 févr. 2008 à 20:08
Faudra que je m'intéresse de plus près à la STL.
En tout cas merci du commentaire !
27 févr. 2008 à 15:00
Bon courage !
*********
«Asseyez-vous une heure près d'une jolie fille, cela passe comme une minute. Asseyez-vous une minute sur un poêle brûlant, et cela passe comme une heure. C'est cela la relativité.»
Albert Einstein.
27 févr. 2008 à 14:50
Pour tester:
Sinon, code bien propre !
A+!
*********
«Asseyez-vous une heure près d’une jolie fille, cela passe comme une minute. Asseyez-vous une minute sur un poêle brûlant, et cela passe comme une heure. C’est cela la relativité.»
Albert Einstein.
26 févr. 2008 à 20:49
Mais le "delete vect1" ne marche-t-il pas quand même ? en tout cas mon compilo l'accepte, et à l'exécution, on dirait que ça ne pose pas de problème. (ou alors une fuite de mémoire peut-être ?)
26 févr. 2008 à 20:06