如果我有这段代码:
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/