C++ Finden Bestimmtes Element in der Warteschlange
Die Idee ist ziemlich einfach und für die Aufgabe, die es braucht, um eine Warteschlange, also bitte nicht schlagen andere Methoden.
Brauche ich, um eine volle Warteschlange, zum Beispiel 5 Elemente (5,4,3,2,1) und den sensorwerten die position des Elements, die Sie wollen bewegt werden, um die front. E. g, Position 3, bei dem das element 2. So die neue Warteschlange: 2,5,4,3,1...
Ich habe auf diese für eine lange Zeit, so ist es nicht, sobald ich gegen eine Wand, die ich um Hilfe bitten. Möchte nur einen Schubs, um mir die Arbeit in die richtige Richtung wieder 🙂 vielen Dank
- Wenn Sie in drei -, pop-3 Elemente in eine andere Datenstruktur, pop das gewünschte element, drücken Sie die 3-Elemente zurück in die Warteschlange, und drücken Sie dann das gewünschte element.
- So weit Peter ich habe versucht, mit einer temp-Warteschlange, aber ich hatte Probleme bei der Suche die richtige syntax, um die position des Elements in der Warteschlange ausgewählt. Ich verwendet, während Aussagen zu leeren und füllen der Warteschlangen mit Daten. Und ich werde versuchen, dass Moo, danke. Bald zurück sein.
- Wie wird das element in position 3 '2'? AFAICT es 3 sein sollte.
- 0 5, 1 4, 3 wird 2, 2 wird 3. Oder tun Warteschlangen nicht funktionieren, wie arrays?
- Warteschlangen funktionieren nicht wie arrays. Aber das ist irrelevant. Indizes noch funktionieren, da es die menschliche interpretation, die auf einer Daten-Visualisierung. Wir nur zählen. Ich nur anders gezählt 🙂 ich war die Fixierung auf das dilemma, ob wir würden die Zählung auf der linken oder auf der rechten Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warteschlange Darstellungen sind ziemlich willkürlich. Ich würde verwenden eine deque:
Sehen es live auf coliru
Wenn durch die Warteschlange, die Sie bedeuten, LIFO-Zugriff nur dann würde es sich:
Sehen es Live Auf Coliru zu
addToQueue
->readQueue
oderfillQueue
. Entfernen Sie den AufrufmoveNthToFront
aus (weil es nicht "add to queue"). Drop-array. Es ist nicht benutzt und es ist nie freigegeben werden (memory leak). Nicht bestehen, dieqsize
, weil die Warteschlange schon kennt. Betrachten Sie einen besseren Namen fürqCharacters
, weil, warum Zeichen?). Fehlerbehandlung/input-Validierung. Für dumping-betrachten Sie einen Helfer: paste.ubuntu.com/7205627. Verwendensize_t
fürqSize
weil der Vergleich ausfallen würde, wennqSize<0
.