Qt的foreach中的第二个术语仅评估一次吗?

时间:2011-02-05 16:42:21

标签: c++ qt

如果我有这段代码:

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

selectedItems()只会被调用一次吗?

1 个答案:

答案 0 :(得分:3)

烨。它将创建返回容器的副本,并使用它。 (参见Qt foreach keyword文档)

相关:

  • 由于Qt foreach始终复制容器,因此最好与QT容器(写入时复制)或小型STL容器一起使用。
  • Boost's foreach可以更好地处理此问题,并在必要时避免复制。