#39;for#39; loop vs Qt#39;s #39;foreach#39; in C++(“for循环与 C++ 中 Qt 的“foreach)
问题描述
哪个更好(或更快),C++ for
循环或 Qt 提供的 foreach
运算符?比如下面的条件
Which is better (or faster), a C++ for
loop or the foreach
operator provided by Qt? For example, the following condition
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
}
推荐答案
在大多数情况下这真的无关紧要.
It really doesn't matter in most cases.
关于 StackOverflow 上关于这种方法还是那种方法更快的大量问题,掩盖了这样一个事实:在绝大多数情况下,代码大部分时间都在等待用户做某事.
The large number of questions on StackOverflow regarding whether this method or that method is faster, belie the fact that, in the vast majority of cases, code spends most of its time sitting around waiting for users to do something.
如果您真的很担心,请自行分析并根据您的发现采取行动.
If you are really concerned, profile it for yourself and act on what you find.
但我认为您很可能会发现,只有在最密集的数据处理工作中,这个问题才有意义.差异很可能只有几秒钟,即使如此,也只有在处理大量元素时才会如此.
But I think you'll most likely find that only in the most intense data-processing-heavy work does this question matter. The difference may well be only a couple of seconds and even then, only when processing huge numbers of elements.
让您的代码首先工作.然后让它快速工作(并且只有在您发现实际的性能问题时).
Get your code working first. Then get it working fast (and only if you find an actual performance issue).
在完成功能并可以正确分析之前花费的时间优化,大部分时间都是浪费时间.
Time spent optimising before you've finished the functionality and can properly profile, is mostly wasted time.
这篇关于“for"循环与 C++ 中 Qt 的“foreach"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:“for"循环与 C++ 中 Qt 的“foreach"
基础教程推荐
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 使用从字符串中提取的参数调用函数 2022-01-01
- 从 std::cin 读取密码 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01