1. ホーム
  2. objective-c

[解決済み] Objective-CでQueueを作成し、使用するにはどうすればよいですか?

2022-10-16 03:11:13

質問

Objective-Cのプログラムで待ち行列のデータ構造を使いたい。 C++では、STLキューを使用します。 Objective-Cで同等のデータ構造は何ですか? どのようにアイテムをプッシュ/ポップするのですか?

どのように解決するのですか?

Benのバージョンはキューではなくスタックなので、少し手を加えました。

NSMutableArray+QueueAdditions.h。

@interface NSMutableArray (QueueAdditions)
- (id) dequeue;
- (void) enqueue:(id)obj;
@end

NSMutableArray+QueueAdditions.mです。

@implementation NSMutableArray (QueueAdditions)
// Queues are first-in-first-out, so we remove objects from the head
- (id) dequeue {
    // if ([self count] == 0) return nil; // to avoid raising exception (Quinn)
    id headObject = [self objectAtIndex:0];
    if (headObject != nil) {
        [[headObject retain] autorelease]; // so it isn't dealloc'ed on remove
        [self removeObjectAtIndex:0];
    }
    return headObject;
}

// Add to the tail of the queue (no one likes it when people cut in line!)
- (void) enqueue:(id)anObject {
    [self addObject:anObject];
    //this method automatically adds to the end of the array
}
@end

新しいメソッドを使いたい場所で .h ファイルをインポートし、他の NSMutableArray のメソッドと同じように呼び出すだけです。

幸運とコーディングの継続を祈ります。