QT中foreach的使用


在標准C++中,並沒有foreach關鍵字。

但是在QT中,可以使用這一個關鍵字,其主要原因是QT自己增加了這一個關鍵字,就像slots和signals、emit等一樣。增加的foreach關鍵字在編譯時會進行預處理。

其用法為:

foreach (varItem , Items)  // foreach(variable ,container)

其中,varItem(variable)是容器Items(container)中的一個項,相當於:variable=container.item 。遍歷會從頭遍歷到尾。

如以下代碼:

QStringList slt = {"abc", "qwe", "upo"};
foreach(QString s , slt )
{
    cout<<s<<endl;
}
// 輸出結果為:
abc
qwe
upo

在C#、Java等語言中,可以直接使用foreach,為語言自帶關鍵字,用法相似。

其中,在C++11標准中,提供了一種新的語句:范圍for (range for) 語句。和這里的foreach用法類似。只是這里使用的是 “:” 而不是 “,” 。

其語法形式為:

for (declaration : expression)

使用時代碼如下:(參照foreach代碼)

QStringList slt = {"abc", "qwe", "upo"};
for(QString s : slt )
{
    cout<<s<<endl;
}
// 輸出結果為:
abc
qwe
upo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM