QT中foreach用法


foreach(variables ,Container)關鍵字是Qt對c++的一個擴展,主要用於按順序歷經容器(container)中的對象,

foreach用法類似於for循環,但是又有所不同,foreach可以使用一個變量名來遍歷容器中的所有元素。

foreach宏的參數依次為:元素類型,元素名,容器類型,容器名。

假設有個vector如下面的定義:
vector<int> v; 那么遍歷v可以使用下面的代碼:
foreach(int e , vector<int> v)
{//使用(e)來訪問v的元素
}
例如:

QLinkList list;

QString str;

      foreach(str , list)

   {

            qDebug()<<str;

     }

這樣就可以歷經list里存儲的對象了,它的作用相當於標准C++中的iterator

QLinkList list;

QLinkListIterator i(list);

while(i.hasNext()) {

qDebug()<<i.next();

}

例如:獲取網絡通信參數地址
QList<QHostAddress> list = QNetworkInterface::allAddresses();
      foreach (QHostAddress address, list)
      {
          qDebug() <<address;
      }
輸出:

 QHostAddress( "FE80::2828:5A2D:53EB:AF76%101" )

QHostAddress( "169.222.175.158" )

QHostAddress( "192.168.37.1" )

QHostAddress( "192.168.127.1" )

QHostAddress( "FE80::3C06:E1F9:4614:184E%13" )

QHostAddress( "169.254.34.76" )

QHostAddress( "2001:DA8:C800:AD06:6DEE:7E90:6175:D582" )

QHostAddress( "2001:DA8:C800:AD06:685D:ABC1:38DA:6B99" )

QHostAddress( "FE80::6DEE:7E90:6175:D483%12" )

QHostAddress( "172.20.41.109" )

QHostAddress( "FE80::452C:B25A:D182:8534%12" )

QHostAddress( "192.168.110.1" )

QHostAddress( "FE80::797D:7F5E:605D:DF4B%12" )

QHostAddress( "192.168.49.1" )

QHostAddress( "::1" )

QHostAddress( "127.0.0.1" )

QHostAddress( "2001:0:9D38:6AB8:3CB0:38AD:53EB:D438" )

QHostAddress( "FE80::3CB0:38AD:53EB:D438%11" )  


免責聲明!

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



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