哪个更好(或更快),一个C ++for循环或foreachQT提供的操作员?例如,以下条件

QList<QString> listofstrings;

哪个更好?

foreach(QString str, listofstrings)
{
    //code
}

或者

int count = listofstrings.count();
QString str = QString();
for(int i=0;i<count;i++)
{
    str = listofstrings.at(i);
    //Code
}

答案

在大多数情况下,这确实没关系。

关于这种方法还是该方法的速度更快,大量关于Stackoverflow的问题相信,在绝大多数情况下,代码大部分时间都花在围坐在等待用户做某事的情况下。

如果你真正关心的是,自己介绍它,并根据自己的发现行事。

但是我认为您很可能只会发现,在最激烈的数据处理工作中,这个问题才有意义。差异很可能只有几秒钟,即使到那时,也只有在处理大量元素时。

使您的代码工作第一的 。然后使它起作用快速地(并且只有找到实际的性能问题时)。

在完成功能并可以正确配置之前,优化花费的时间主要是浪费时间。

来自: stackoverflow.com