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