//block特性介紹
#import
////#include
//#include
//using namespace std;
//template
//void blocktest(t pblock)
////static void hi(void)
////int main(int argc, const char* argv)//
intmain(
intargc,
const
char
* argv) ;
則表示乙個函式塊,它接受
void
型別引數,並且返回
void
puts
("hello lei"
);return;};
iblocks();
//step2 block
陣列void
(^p[2])(
void
) = ,
^(void)};
p[0](),
p[1]();
//這裡的
p型別為
void(^2)(void),
表示含有2個
void(^)void
塊引用元素變數
//block
語法遞迴函式實現
//一種方法是全域性的或都
static
的block
可以實現
void
(^q)(
int)= 0;
//初始化變數
static
void
(^ const
blocks)(
int) = ^(
inti)
};q = blocks;
q(2);
//遞迴一種方法就是直接將
block
塊也用__block
來進行宣告就可以了
__block
void
(^tblocks)(
int);
tblocks = ^(
inti)
};tblocks(2);
//blocks
結合泛型的使用
//一般的外部函式能夠作為模板引數
//c++
標準中明確指出,模板引數必須為常量表示式,如果是函式的話必須是帶有外部連線(即
external-linkage
)的函式指標。而
blocks
表示式首先就不是乙個常量表示式,然後它也沒有外部連線。
//泛型的好處:最大的意義就是**重用和型別安全了,不需要在執行時過多的強制型別轉換,在編譯時就知道型別。 //
閉包是乙個函式(或指向函式的指標),再加上該函式執行的外部的上下文變數(有時候也稱作自由變數)。
// block
實際上就是
objective-c
語言對於閉包的實現。
block
配合上dispatch_queue
,可以方便地實現簡單的多執行緒程式設計和非同步程式設計
//閉包:
(假設兩個臨時變數陣列,在
block
函式塊裡進行拷貝,原始資料不變)//
宣告block
的時候實際上是把當時的臨時變數又複製了乙份,在
block
裡即使修改了這些複製的變數,也不影響外面的原始變數。即所謂的閉包
//當變數是乙個指標的時候,
block
裡只是複製了乙份這個指標,兩個指標指向同乙個位址。所以,在
block
裡面對指標指向內容做的修改,在
block
外面也一樣生效
nsmutablearray
*marray = [
nsmutablearray
arraywithobjects
:@"a"
,@"b"
,@"abc"
,nil
];nsmutablearray
*marraycount = [
nsmutablearray
arraywithcapacity
:1];
[marray
enumerateobjectswithoptions
:nsenumerationconcurrent
usingblock
: ^(
idobj,
nsuinteger
idx,
bool
*stop)];
nslog
(@"%@"
,marraycount);
//閉包的好處:用處有兩個,乙個是前面提到的可以讀取函式內部的變數,另乙個就是讓這些變數的值始終保持在記憶體中
}return0;}
一些排序演算法的特性介紹
1.選擇排序 選擇排序每次從未排序的所有資料中通過比較,選出最小的資料,並將之與未排序資料中的第乙個資料交換位置,然後繼續按照此方法從剩餘的資料中選擇最小的資料,並按照上述方法處理,如此迴圈,直至所有資料排好序。特性 執行時間和輸入無關。即 即使陣列是有序的陣列,但是它和隨機無序陣列的排序時間相同。...
python 的一些特性
class student object say this is a student class def init self,name,age 構造器 self.name name self.age age classmethod 類方法 def showclassmethod cls print ...
https的一些特性
支援客戶 伺服器模式 簡單快速 客戶向服務端請求服務時,只需傳送請求方式和路徑。靈活 允許傳輸任意型別的資料物件。由content type加以標記。無連線 每次響應乙個請求,響應完成以後就斷開連線。無狀態 伺服器不儲存瀏覽器的任何資訊。每次提交的請求之間沒有關聯。持續性瀏覽器和伺服器建立tcp連線...