 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Florian Guest
|
Posted: Thu Feb 17, 2005 12:31 am Post subject: probleme avec la STL et l'algorithme find |
|
|
je cherche à tirer aléatoirement dans un vecteur,
un objet avec des caracteristique particuliere.
Comment est ce que je doit faire ?
MErci D'avance
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Thu Feb 17, 2005 7:49 am Post subject: Re: probleme avec la STL et l'algorithme find |
|
|
Florian wrote:
| Quote: | je cherche à tirer aléatoirement dans un vecteur, un objet
avec des caracteristique particuliere. Comment est ce que je
doit faire ?
|
Je ne suis pas sûr d'avoir bien compris. Tu as un vecteur qui
contient des objets, dont certains ont des caractèristiques
particulières, et tu veux tirer d'une façon aléatoire un de ces
objets, sans tenir en compte les autres objets ? Si c'est ça, il
y a deux solutions simples :
-- Créer un nouveau vecteur avec seulement les éléments qui
nous intéressent. Selon le cas, on pourrait se servir de
remove_if pour le faire ; si la copie est coûteux, en
revanche, le deuxième vecteur pourrait ne contenir que des
iterateurs. (Il doit y avoir des solutions très élégantes
avec les adaptateurs d'itérateur chez Boost.) Ensuite, on
tire dans le nouveau vecteur.
Une variante de ceci serait de trier le vecteur pour que
tous les éléments intéressants se trouvent au début.
-- Si le pourcentage d'éléments avec les bonnes
caractèristiques est élevé, on pourrait aussi simplement
tirer dans le vecteur initial, en rejetant les tires qui
renvoient un élément qui n'a pas les caractèristiques
requises. Cette solution a l'avantage d'être la plus simple,
et si le taux de rejets est faible, elle pourrait avoir une
performance acceptable.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|