From 14e4b045a637572364cb371326b0454ff7bdea60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Wed, 20 Apr 2016 23:16:57 +0200 Subject: [PATCH] =?UTF-8?q?R=C3=A9impl=C3=A9mentation=20de=20ResourceManag?= =?UTF-8?q?er::getFiles()=20avec=20tri=20&=20fonctions=20C++11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/resource_manager.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/resource_manager.cpp b/src/resource_manager.cpp index 7468b89..def6855 100644 --- a/src/resource_manager.cpp +++ b/src/resource_manager.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "resource_manager.hpp" @@ -27,15 +28,14 @@ std::vector ResourceManager::getFiles(fs::path path) const { fs::recursive_directory_iterator dir(path), end; std::vector result; - // on boucle sur tous les fichiers du dossier - // et de ses sous-dossiers et on les garde en mémoire - while (dir != end) { - if (fs::is_regular_file(dir->path())) { - result.push_back(dir->path()); - } + // récupération de la liste de tous les fichiers + // (et uniquement des fichiers, d'où le filtre) + std::copy_if(dir, end, std::back_inserter(result), [](fs::path path){ + return fs::is_regular_file(path); + }); - ++dir; - } + // tri par ordre alphabétique + std::sort(result.begin(), result.end()); return result; }