Tableau de queue

Résolu
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 - 8 févr. 2011 à 16:32
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 - 9 févr. 2011 à 10:01
Bonjour,
J'utilise la class Queue comme un buffer fifo.
Je voudrais savoir si il est possible de faire un tableau de Queue comme ceci par exemple:
Queue<float>[] queue = new Queue<float>[6](500);

Merci


www.survey-copter.com

16 réponses

cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
8 févr. 2011 à 23:16
Tu crées ton tableau
Queue[] tab = new Queue[10];

Ensuite tu initialises toutes les files de ton tableau
for (int i = 0; i < tab.Length; i++)
{
    tab[i] = new Queue<float>();
}

Et finalement tu l'utilises
tab[1].Enqueue(0);


---
mon blog sur dotnet et plein d'autres choses
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
3
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
8 févr. 2011 à 20:51
Oui c'est possible.

---
mon blog sur dotnet et plein d'autres choses
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
0
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
8 févr. 2011 à 20:54
Merci pour la réponse, mais elle ne m'aide pas


www.survey-copter.com
0
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
8 févr. 2011 à 21:14
Queue[] tab = new Queue[10];


---
mon blog
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
8 févr. 2011 à 22:17
Merci mais ce n'est pas aussi simple.
En fait j'ai besoin de créer un tableau de Queue
J'ai réussi à créer un buffer de 500 valeurs :
Queue<float> queue = new Queue<float>(500);
que je gère ainsi
queue.Enqueue(val);
et
queue.Dequeue();

mais j'ai besoin d'avoir un tableau pour faire ceci
Queue<float>[] queue = new Queue<float>[6](500);

queue[i].Enqueue(val);
et
queue[i].Dequeue();
Mais ça ne marche pas
Une idée ???

www.survey-copter.com
0
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
8 févr. 2011 à 22:44
Il faut initialiser les 500 files.
for (int i = 0; i < tab.Length; i++)
{
    tab[i] = new Queue<float>();
}


---
mon blog
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
0
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
8 févr. 2011 à 22:50
Alors là tu m'as perdu...
comment tu initialises et utilise ça.
Merci

www.survey-copter.com
0
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
8 févr. 2011 à 23:38
Bon ben ça ne marche pas
sur cette ligne :
tab[i] = new Queue<float>();
J'ai
Erreur 1 Impossible de convertir implicitement le type 'System.Collections.Generic.Queue<float>' en 'System.Collections.Generic.Queue'

par contre si je déclare ainsi
Queue<float>[] tab = new Queue<float>[6];
ça marche
par contre ç'est moins pratique comme tableau...
Une idée
Je suis sous XP avec VS2005 et Framework 2.0

Merci

www.survey-copter.com
0
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
8 févr. 2011 à 23:45
L'erreur vient de mon code.
J'ai déclaré un tableau de file de int et j'assigne une file de float, d'où le problème de type


---
mon blog sur dotnet et plein d'autres choses
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2011 à 01:26
Possible de faire :
            List<Queue<float>> q = new List<Queue<float>>(6);
            for (int i = 0; i < 6; i++)
                q.Add(new Queue<float>(500));
            q[0].Enqueue(1.0f);
            q[0].Enqueue(2.0f);
            q[0].Enqueue(3.0f);
            q[2].Enqueue(10.0f);
            q[2].Enqueue(20.0f);
            q[2].Enqueue(30.0f);
            while (q[0].Count>0)
                MessageBox.Show(q[0].Dequeue().ToString(), "Queue 0");
            while (q[1].Count > 0)
                MessageBox.Show(q[1].Dequeue().ToString(), "Queue 1");
            while (q[2].Count > 0)
                MessageBox.Show(q[2].Dequeue().ToString(), "Queue 2");



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2011 à 01:30
ou en passant par un tableau implicite :
            Queue<float>[] q = new Queue<float>[] {new Queue<float>(500), 
                                                   new Queue<float>(500),
                                                   new Queue<float>(500),
                                                   new Queue<float>(500),
                                                   new Queue<float>(500),
                                                   new Queue<float>(500)};



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2011 à 01:33
ou explicite :
            Queue<float>[] q = new Queue<float>[6];
            for (int i = 0; i < 6; i++)
                q[i] = new Queue<float>(500);


Bref, l'embarras du choix ^^


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2011 à 01:35
Je viens de relire le code propose plus tot...
Assez similaire aux miens, finallement...

par contre ç'est moins pratique comme tableau...


en quoi ?

Pas compris pourquoi la question etait restee en suspend, finallement...


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
9 févr. 2011 à 08:31
Merci renfield,
Toi aussi tu es un nocturne ?
J'ai dis une bêtise en pensant qu'un tableau déclaré avec des float serait moins pratique.
Merci , je vais essayer tes idées et comparer


www.survey-copter.com
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2011 à 08:52
nocturne, oui, je dors par vagues... là, j'étais entre deux phases de someil ^^



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
9 févr. 2011 à 10:01
Je crois que l'on a tous le même problème


www.survey-copter.com
0
Rejoignez-nous