EgoRusMarch
@EgoRusMarch

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

Прошу не путать с рекурсивной итерацией. Мне нужно каким-то образом получать fs::directory_entry с конца в начало. Методов operator--() или decrement() у класса fs::directory_iterator нет, трейтов для конструктора тоже нет. Класс типа fs::reverse_directory_iterator отсутствует. Так есть ли способ?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
EgoRusMarch
@EgoRusMarch Автор вопроса
В общем, самый нормальный способ - создать 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();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SDT Москва
от 100 000 до 200 000 ₽
Total Games Минск
от 3 500 $
Exness Москва
от 3 000 €
14 авг. 2020, в 02:27
1000 руб./за проект
14 авг. 2020, в 01:51
600 руб./за проект