c++ - Qt 的 foreach 中的第二项是否仅评估一次?

标签 c++ qt

如果我有这段代码:

foreach (QListWidgetItem *ii, selectedItems()) {
    urls.push_back(ii->data(Qt::ToolTip).toString());
}

selectedItems() 是否只被调用一次?

最佳答案

是的。它将创建返回容器的拷贝,并使用它。 (参见 Qt foreach keyword 文档)

相关:

  • 由于 Qt foreach 总是复制容器,因此它最好与 QT 容器(即写时复制)或小型 STL 容器一起使用。
  • Boost's foreach更好地处理这个问题,除非必要,否则避免复制。

关于c++ - Qt 的 foreach 中的第二项是否仅评估一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908107/

相关文章:

c++ - Mupdf加密解密问题

c++ - Scons:如何在编译前使用不产生任何输出文件的命令检查文件?

c++ - qobject 基础的多重继承

qt - 动态树模型 (Qt)

c++ - vector 迭代器不可递增

c++ - 取消引用和引用类示例

c++ - 如何纠正 *** glibc 在程序中检测到 *** 错误

c++ - 凯特安装问题

c++ - QDoubleValidator 和 QLineEdit onEditFinished 冲突?

c++ - 如何在 Mac OS 的命令行中编译 Qt 代码