我使用boost directory_iterator
继承了一些代码:
for (directory_iterator fileIt{currDir}; fileIt != directory_iterator{}; ++fileIt) {
// Do stuff with files
}
我希望按特定顺序处理文件(简单的字母排序可以)。有没有办法实现这一点,即强制迭代器根据一些排序而不是默认值给我文件?
答案 0 :(得分:3)
您需要自己排序,因为通过解除引用directory_iterator
的连续增量获得的目录条目的顺序未指定:
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';