1. 程式人生 > >[obj-c] Object-C 實踐Queue容器

[obj-c] Object-C 實踐Queue容器

Object-C同樣沒有提供Queue容器,因此我也自己實踐了一個

#import <Foundation/Foundation.h>

@interface NSQueue : NSObject {
	NSMutableArray* m_array;
}

- (void)enqueue:(id)anObject;
- (id)dequeue;
- (void)clear;

@property (nonatomic, readonly) int count;

@end

#import "NSQueue.h"


@implementation NSQueue

@synthesize count;

- (id)init
{
	if( self=[super init] )
	{
		m_array = [[NSMutableArray alloc] init];
		count = 0;
	}
	return self;
}

- (void)dealloc {
	[m_array release];
	[self dealloc];
    [super dealloc];
}

- (void)enqueue:(id)anObject
{
	[m_array addObject:anObject];
	count = m_array.count;
}
- (id)dequeue
{
    id obj = nil;
    if(m_array.count > 0)
    {
        obj = [[[m_array objectAtIndex:0]retain]autorelease];
        [m_array removeObjectAtIndex:0];
        count = m_array.count;
    }
    return obj;
}

- (void)clear
{
	[m_array removeAllObjects];
        count = 0;
}

@end


相關推薦

[obj-c] Object-C 實踐Queue容器

Object-C同樣沒有提供Queue容器,因此我也自己實踐了一個#import <Foundation/Foundation.h> @interface NSQueue : NSObject { NSMutableArray* m_array; } - (

IOS開發基礎篇之──Object-C 實踐Queue容器

原貼地址:http://blog.csdn.net/cloudhsu/article/details/6589313Object-C同樣沒有提供Queue容器,因此我也自己實踐了一個#import <Foundation/Foundation.h>@interfa

[C++/object c]_[初級]_[std::map容器的使用總結和NSDictionary詞典使用總結]

map容器 場景:map的元素是一對對的“關鍵字―值”組合,“關鍵字”用於搜尋,而“值”用來表示我們要存取的資料。 在map容器中,每個關鍵字只能出現一次,不能重複 void TestMap() { typedef map<int,string> gAAMa

C++ 知識回顧總結 -- queue 佇列容器

一、說明 queue 是一種佇列介面卡,專門設計用於FIFO中操作(先進先出),元素從一端插入容器並從另一端提取。 相關API地址為:http://www.cplusplus.com/reference/queue/queue/ 二、使用方法 在C++中只要#include<queue>即

C++STL學習——stack與queue容器

stack容器 簡介 stack是一種堆疊容器,是一種"先進後出"的容器。 stack是簡單地裝飾deque容器而成為另外的一種容器 標頭檔案#include<stack> stack物件的預設構造 stack採用模板類實現, stack

C++(14)STL分析與實踐容器介面卡

STL實踐與分析 --容器介面卡 引: 除了順序容器,標準庫還提供了三種順序容器介面卡:queue,priority_queue和stack,介面卡是標準庫中的概念,包

Object-C iOS純代碼布局 一堆代碼可以放這裏!

objective 是我 cti blog 今天 object 1-1 擴展 類的屬性 前言: 最近寫的文章都是創業類,好吧,今天好好寫寫技術類的文章! 不過分享的不是IOS相關的文章,畢竟這幾天在速成IOS,看的是objective-c,由於速成的很快,好累! 好在

Inside the C++ Object Model 總結

數據 truct access 連續 bject ase data 地址 del 1.C++ 虛函數的實現是為class安插一個vptr指向一個數組。數組第一項通常保存type_info。其他項為虛函數地址。或許還存在指向virtual base class的指針。 2.通

Object-C知識點 (四) 性能優化

動態更新 ack ons 問題 image 常用 動態 監聽 我不 #pragma mark - 性能優化 1. 行高一定要緩存 緩存行高是解決性能優化的最佳途徑(除非刷新頻率已經很高了,否則一定要緩存)2. 盡量減少計算,所有需要素材提前計算好3. 控件不要設置圓角半

zz object c

方法 簡單 mda ava another 1.0 end 知識 ubi 在Objective-C中,我們可以用new簡單的代替alloc init,我們今天介紹的是類似於new這種簡易用法的另一種OC特性,[email protected]/* */,@

C# 獲取父控件容器的屬性

navi too ngs cnblogs toolstrip () bindings source current C# 獲取父控件容器的屬性 1 BindingNavigator bindingNavigator = (sender as ToolStripB

object-c 框架之經常使用結構體

cati width idt copyright 效果 nbsp nsobject pop rac Foundation 框架定義經常使用結構體。結構體採用object-c 定義:經常使用NSSRange,NSPoint。NSSize,NSRect等 一

c#之Redis實踐list,hashtable

hashtable 轉載 itl red ref png clas logs sun 寫在前面 最近公司搞了一個活動,用到了redis的隊列,就研究了下redis的相關內容。也順手做了個demo。 C#之使用Redis 可以通過Nuget安裝Reidis的相關程序集。安裝

object-c review

ops method += interface logs prime lease min 3.4 // // main.m // cmdTry // // Created by Calos Chen on 2017/8/21. // Copyright

[object-c 2.0 程序設計]object-c file handle (二)

attribute 正常的 比較 eat aps const component pub home // // main.m // cmdTry // // Created by Calos Chen on 2017/8/21. // Copyrigh

C#學習筆記】Dictionary容器使用

main 容器 ons move eap app namespace ica gen using System; using System.Collections.Generic; namespace ConsoleApplication { cla

[C++] Object i = Object(0)和Object* i = new Object(0)的區別

pil nod 正常 -cp his tor ddr pretty 例子 C/C++裏指針通常是指向一個對象的,所以不能指向某一變量(Object i,i為某個變量),不過在Java中所有變量都是對象 舉個例子: int a=1; int *p=a; 報錯:inv

C#RSA算法實現+如何將公鑰為XML格式轉為PEM格式,給object-C使用

互轉 exp super csharp 實現 avs private 必須 ima .net中,處於安全的考慮,RSACryptoServiceProvider類,解密時只有同時擁有公鑰和私鑰才可以。原因是公鑰是公開的,會被多人持有。這樣的數據傳輸是不安全的。C#RSA私鑰

object-c 簡單入門

end @property alloc 類方法 some ptr 轉發 protocal 實現 1、類 //類的聲明 @interface myClass : 父類 {   // {} 裏聲明成員變量   @public   @private   @protected //

C++標準庫】STL容器

class move () val 條件 code con spa 數組元素 STL容器的共通能力 所有容器提供的都是“value語義”而非"reference語義"。容器進行元素的安插動作時,內部進行copy或者move,而不是管理元素的reference。 元素在容器