EgoRusMarch
@EgoRusMarch
C++ Developer

STL. Filesystem. Есть ли способ реверсивной итерации по каталогу?

Прошу не путать с рекурсивной итерацией. Мне нужно каким-то образом получать fs::directory_entry с конца в начало. Методов operator--() или decrement() у класса fs::directory_iterator нет, трейтов для конструктора тоже нет. Класс типа fs::reverse_directory_iterator отсутствует. Так есть ли способ?
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
EgoRusMarch
@EgoRusMarch Автор вопроса
C++ Developer
В общем, самый нормальный способ - создать std::set<fs::path> и заполнить его содержимым, а затем воспользоваться реверсивным итератором std::set.

std::set<fs::path> file_paths;

for (const auto& dir_entry : fs::directory_iterator{"path/to/directory"})
    file_paths.insert(dir_entry.path());

auto iter = file_paths.rbegin();
auto end = file_paths.rend();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы