我在Qt 5项目的单个作用域中使用了多个QDirIterator。它们通常如下所示:

QDirIterator i(QDir::currentPath(), QDir::Dirs | QDir::NoDotAndDotDot);
while (i.hasNext()) {
    doSomething();
};

现在,我使用多个具有各自名称的对象(i0i1i2等),而我想知道如何在整个项目中仅使用一个名称,在此示例中使用i吗?我应该如何停用现有的QDirIterator以重用它?

最佳答案

C++允许您在需要的任何地方引入新范围,例如:

{
  QDirIterator i(path1, QDir::Dirs | QDir::NoDotAndDotDot);
  while (i.hasNext()) {
    doSomething();
  };
}
{
  QDirIterator i(path2, QDir::Dirs | QDir::NoDotAndDotDot);
  while (i.hasNext()) {
    doSomething();
  };
}

07-24 14:28