當C 遇到IOS應用開發之 List集合

2021-06-10 17:58:12 字數 2136 閱讀 6503

在object-c中,陣列使用nsarray和nsmutablearray(可變長陣列)。使用語法如下:

nsarray *array = [[nsarray alloc] initwithobjects:@"one",@"two",@"three",@"four",nil];

取陣列元素的方法:

[array objectatindex:2]);

因為陣列在開發中會被頻繁使用,且objectatindex的寫法看著過於繁複,遠不如array[2]這種直觀。所以我將c++中的vector類進行了封裝,並增加一些新的功能:

#include #include using namespace std;

using namespace std::tr1;

template>

class list: public vector

list(nsarray *array)

list(string *array)

list(int *array)

~list()

void clear()

bool contains(const t t)

int indexof(const t t)

void insert(int index, const t t)

void remove(const t t)

void removeat(int index)

}int count()

void copyfrom(listlist)

void copyfromarray(nsarray *array)

}void copyfromarray(string* array)

}void copyfromarray(int* array)

}};

用法如下

例項化物件並新增資料:

listlist;

list.add(@"1");

list.add(@"2代震軍");

list.add(@"333").add(@"44444").add(@"5");

或用下面方式:

nsarray *array = [[nsarray alloc] initwithobjects:

@"one",@"two",@"three",@"four",nil];

listlist1(array);

判斷是否存在某資料:

nsstring *del = @"44444";

bool iscontains = list.contains(del);

刪除資料:

list.removeat(2);

list.remove(del);

遍歷:

for(list::iterator it = list.begin() ;it != list.end() ; it++)

cout << [(*it) utf8string ]<<" " ;

或使用foreach:

__block nsstring* str;

for_each(list.begin(), list.end(), ^(nsstring *value){

str = value;

std::cout<<[value utf8string]<獲取指定索引記錄:

nsstring * result = list[0];

**比較簡單,呵呵。

好了,今天的內容就先到這裡了。

微博:

tags:ios, c++, nsarray, nsmutablearray, vector

當C 遇到IOS應用開發

在object c中,字典 key value 使用nsdictionary 和nsmutabledictionary 可變長 使用語法如下 cpp nsdictionary dict nsdictionary dictionarywithobjectsandkeys value1 key1 val...

IOS開發之UIFont應用

我們在開發中很多時候要設定uilabel,uibutton,uitextfield的字型,這個時候我們就需要用到uifont,下面簡單介紹一下uifont的用法,僅供參考。uifont用於獲取和設定字型資訊。這個類提供用於輸出的字型的屬性和字型資訊。我們可以把其物件像引數一樣傳入函式中。一般而言我們...

IOS開發之UIFont應用

我們在開發中很多時候要設定uilabel,uibutton,uitextfield的字型,這個時候我們就需要用到uifont,下面簡單介紹一下uifont的用法,僅供參考。uifont用於獲取和設定字型資訊。這個類提供用於輸出的字型的屬性和字型資訊。我們可以把其物件像引數一樣傳入函式中。一般而言我們...