Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/10/2010, à 20:13

lann

Pile en C++

Bonsoir

J'ai besoin d'une classe qui gère ce type de pile.

mini_101027080605612426.png

Un échantillon stocké par le haut fait immédiatement sortir un par le bas. Tous les autres échantillons sont décalés par le bas

Existe-t-il une classe toute faite?
Sinon à partir de quelle classe la faire? std::vector me semble approprié ?

Merci

Hors ligne

#2 Le 27/10/2010, à 20:45

valAa

Re : Pile en C++

Salut,
Je partirais plutôt sur une std::queue.

Ps: la "pile" que tu décris n'est justement pas une pile (dernier arrivé, premier sorti) mais une file (premier arrivé, premier sorti) soit en anglais une... queue.

Hors ligne

#3 Le 27/10/2010, à 20:55

Le Farfadet Spatial

Re : Pile en C++

Salut à tous !

   Tout à fait d'accord avec ValAa : il s'agit d'une file et il vaut mieux se diriger vers « std::queue ». Le conteneur « std::vecteur » n'est pas approprié pour une file.

   À bientôt.

Le Farfadet Spatial

Hors ligne

#4 Le 29/10/2010, à 11:53

lann

Re : Pile en C++

Bonjour

Pas de soucis. J'ai bien réussi à faire ma petite pile (euh file smile)  avec les std::queue.
Mais ce qui me tracasse, c'est le manque de réactivité de ces files.

J'ai fait un test sur ce que je suis en train de programmer. A un moment je fais une FFT.
J'ai comparé entre les :

std::queue<double> Tableau

et les

 double *Tableau

Voici les résultats :

1/ std::queue
1.1/ 16384 échantillons

temps fft : 0.174323

1.2/ 32768 échantillons

temps fft : 0.278392

1.3/ 65536 échantillons

temps fft : 0.603627

1.4/ 131072 échantillons

temps fft : 1.59227

1.5/ 262144 échantillons

temps fft : 3.11457

1.6/ 524288 échantillons

temps fft : 6.53772


2/ Tableaux
2.1/ 16384 échantillons

temps fft : 0.00359864

2.2/ 32768 échantillons

temps fft : 0.0115884

2.3/ 65536 échantillons

temps fft : 0.0187093

2.4/ 131072 échantillons

temps fft : 0.0674813

2.5/ 262144 échantillons

temps fft : 0.123578

2.6/ 524288 échantillons

temps fft : 0.262402

En sachant que le calcul de la FFT est exactement le même entre les deux. c'est juste le type d'éléments en entrée et sortie qui change.

Qu'en pensez-vous ?:)

Dernière modification par lann (Le 29/10/2010, à 11:56)

Hors ligne

#5 Le 29/10/2010, à 13:08

yannzbig

Re : Pile en C++

Difficile de dire quoi que ce soit sans voir ton code.

Dernière modification par yannzbig (Le 29/10/2010, à 13:08)

#6 Le 29/10/2010, à 19:42

Luc Hermitte

Re : Pile en C++

s/-g/-O2 -NDEBUG/ ?

Hors ligne