C++ 在使用boost::filesystem迭代目录时,是否可以更改文件的顺序?

C++ 在使用boost::filesystem迭代目录时,是否可以更改文件的顺序?,c++,file,iterator,boost-filesystem,C++,File,Iterator,Boost Filesystem,我使用boost的目录迭代器继承了一些代码: for (directory_iterator fileIt{currDir}; fileIt != directory_iterator{}; ++fileIt) { // Do stuff with files } 我想按照特定的顺序处理文件(简单的字母排序就可以了)。有没有办法实现这一点,即强制迭代器根据某种排序而不是默认排序为我提供文件?您需要自己对其进行排序,因为通过取消引用目录迭代器的连续增量而获得的目录项的顺序未指定: std::

我使用boost的
目录迭代器继承了一些代码:

for (directory_iterator fileIt{currDir}; fileIt != directory_iterator{}; ++fileIt) {
  // Do stuff with files
}

我想按照特定的顺序处理文件(简单的字母排序就可以了)。有没有办法实现这一点,即强制迭代器根据某种排序而不是默认排序为我提供文件?

您需要自己对其进行排序,因为通过取消引用
目录迭代器的连续增量而获得的目录项的顺序未指定:

std::向量路径(
boost::filesystem::目录\迭代器{“.”
,boost::filesystem::directory_iterator{}
);
排序(paths.begin(),paths.end());
用于(自动常量和路径:路径)

std::cout您需要自己对其进行排序,因为通过取消引用
目录迭代器
的连续增量而获得的目录项的顺序未指定:

std::向量路径(
boost::filesystem::目录\迭代器{“.”
,boost::filesystem::directory_iterator{}
);
排序(paths.begin(),paths.end());
用于(自动常量和路径:路径)

std::是否可以放入一个容器,对其进行排序并使用它工作?@GauravSehgal如果没有更好的方法,这就是我的后备计划…:)放入一个容器,分类并使用它会起作用吗?@GauravSehgal如果没有更好的方法,这就是我的后备计划…:)也许值得一提。因此,将所有文件名从一个目录加载到一个向量中不应该是一个问题,因为其他东西可能会首先中断。这一点可能值得一提。因此,将所有文件名从一个目录加载到一个向量中不应该是一个问题,因为其他东西可能会首先中断。
std::vector<boost::filesystem::path> paths(
      boost::filesystem::directory_iterator{"."}
    , boost::filesystem::directory_iterator{}
    );
std::sort(paths.begin(), paths.end());
for(auto const& path : paths)
    std::cout << path << '\n';