在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用於獲取和設定字型資訊。這個類提供用於輸出的字型的屬性和字型資訊。我們可以把其物件像引數一樣傳入函式中。一般而言我們...