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" )  

posted @ 2017-06-03 16:38  小丁木  阅读(9221)  评论(0编辑  收藏  举报