Tableau de queue [Résolu]

Signaler
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
-
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
-
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

Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
15
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.
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
15
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.
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
Merci pour la réponse, mais elle ne m'aide pas


www.survey-copter.com
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
15
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.
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
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
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
15
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.
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
Alors là tu m'as perdu...
comment tu initialises et utilise ça.
Merci

www.survey-copter.com
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
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
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
15
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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
Je crois que l'on a tous le même problème


www.survey-copter.com