QT中foreach的使用

在標準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
相關文章
相關標籤/搜索