Gibt es eine Queue / FIFO-Datenstruktur für das iPhone?

8

Bevor ich meine eigene Warteschlange mit NSMutableArray verwalte, möchte ich wissen, ob etwas mehr Standard verfügbar ist. Ich sehe nichts in den Apple-Dokumenten, aber ich bin überrascht, wenn es keine Queue-Implementierung von irgendwo gibt, die Leute verwenden. Java verwöhnt mich!

    
George Armhold 09.07.2009, 13:51
quelle

6 Antworten

10

Die Implementierung einer Warteschlange basierend auf NSMutableArray ist ziemlich einfach, es ist wahrscheinlich unter 50 Codezeilen.

BEARBEITEN:

Gefunden mit einer schnellen Google-Suche:

%Vor%     
Matt Bridges 09.07.2009, 14:06
quelle
5

Cocoa selbst hat keine Queue-Klasse, und es gibt keinen Standard per se, aber es gibt mehrere Optionen, von denen eine am besten zu Ihren Bedürfnissen passt. Siehe diese Frage (und meine Antwort ).

Wie Sie bereits gesagt haben, können Sie Ihre eigenen mit NSMutableArray rollen. Wenn Sie nur eine schnelle Warteschlange benötigen (und sich keine Gedanken über Kopieren, Encodierung / Decodierung, Aufzählung usw. machen), dann ist die Lösung, die @Matt vorschlägt, ein einfacher Ansatz. Sie sollten auch Warteschlangenmethoden zu NSMutableArray über eine Kategorie hinzufügen , was schön ist, dass Ihre "Warteschlange" ist Auch ein Array (so können Sie es für NSArray-Parameter übergeben), und Sie erhalten alle NS (Mutable) Array-Funktionalität kostenlos.

Wenn Leistung wichtig ist, empfehle ich die Verwendung einer Struktur, die besser geeignet ist, das erste Element zu entfernen. Ich habe aus diesem Grund CHCircularBufferQueue für mein eigenes Framework geschrieben. (Ich versuche nicht, mein eigenes Horn zu machen, versuche nur, anderen Zeit zu ersparen.)

    
Quinn Taylor 10.07.2009 17:38
quelle
1

Ich habe eine Kategorie erstellt, die nur die Methode deque enthält, basierend auf dem Code von Matt Bridges.

%Vor%     
neoneye 12.06.2010 18:25
quelle
0

Sie können die STL-Warteschlange aus der C ++ - Standardbibliothek verwenden.

    
Nick Strupat 12.06.2010 18:28
quelle
0

Sehen Sie sich die STL-Prioritätswarteschlange an. Es erfordert null Zeilen Code und es ist tragbar! Was willst du mehr?

    
Rhythmic Fistman 25.06.2011 15:44
quelle
0

Sie könnten die Methode: lastObject von NSArray verwenden. Hier ist ein ungetestetes Beispiel:

Warteschlange.h

%Vor%

Warteschlange.m

%Vor%     
Hurshai 17.05.2014 21:58
quelle

Tags und Links