[解決済み] 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 のメソッドと同じように呼び出すだけです。
幸運とコーディングの継続を祈ります。
関連
-
[解決済み] Objective-Cの定数
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] JavaScriptでStackとQueueを実装するには?
-
[解決済み] 複数のサブクラスで1つのストーリーボードuiviewcontrollerを使用する方法
-
[解決済み] メソッドが存在するかどうかをチェックする
-
[解決済み] キーチェーンのアイテムは何がユニークなのか(iOSの場合)?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-Cのクラス→文字列のようなものです。[NSArray className] -> @"NSArray" のようになります。
-
[解決済み] error: Writeable atomic property cannot pair with synthesized setter/getter and the user defined setter/getter.
-
[解決済み] Objective-Cでコールバックを実行する方法
-
[解決済み] カレントスレッドがメインスレッドであるかどうかをチェックする
-
[解決済み] キューに入れられたperformSelector:afterDelayの呼び出しをキャンセルする
-
[解決済み] インスタンスメッセージの受信型'CALayer'は前方宣言である」とはどういう意味か?
-
[解決済み] switch文の中で変数を宣言する [重複]。
-
[解決済み] NSDictionaryにboolean値を追加するにはどうすればよいですか?
-
[解決済み] Objective-Cでオブジェクトをコピーする方法
-
[解決済み] Info.plistのCFBundleVersionのアップロードエラー