QT中foreach的使用

示例: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
相關文章
相關標籤/搜索