示例:express
在標準C++中,並無foreach關鍵字,可是在QT中,能夠使用這一個關鍵字,其主要緣由是QT本身增長了這一個關鍵字,就像slots和signals、emit等同樣。增長的foreach關鍵字在編譯時會進行預處理。spa
用法:code
1 foreach (varItem , Items) // foreach(variable ,container)
其中,varItem(variable)是容器Items(container)中的一個項,至關於:variable=container.item 。遍歷會從頭遍歷到尾。blog
如如下代碼:it
1 QStringList slt = {"abc", "qwe", "upo"}; 2 foreach(QString s , slt ) 3 { 4 cout<<s<<endl; 5 } 6 // 輸出結果爲: 7 abc 8 qwe 9 upo
在C#、Java等語言中,能夠直接使用foreach,爲語言自帶關鍵字,用法類似,其中,在C++11標準中,提供了一種新的語句:範圍for (range for) 語句。和這裏的foreach用法相似。只是這裏使用的是 「:」 而不是 「,」 io
其語法形式爲:編譯
1 for (declaration : expression)
使用時代碼以下(參照foreach代碼):class
1 QStringList slt = {"abc", "qwe", "upo"}; 2 for(QString s : slt ) 3 { 4 cout<<s<<endl; 5 }
輸出結果爲:容器
1 abc 2 qwe 3 upo