Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme avec la STL et l'algorithme find

1 réponse
Avatar
Florian
je cherche à tirer aléatoirement dans un vecteur,
un objet avec des caracteristique particuliere.
Comment est ce que je doit faire ?

MErci D'avance

1 réponse

Avatar
kanze
Florian wrote:
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