From 44412cd27b11ad2a7a145f4f5945e0e1de9a6bff Mon Sep 17 00:00:00 2001 From: panoplied Date: Fri, 27 Jun 2025 01:50:59 +0300 Subject: [PATCH] add C++ implementation of DFS example --- 07_trees/c++/01_filesystem_dfs.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 07_trees/c++/01_filesystem_dfs.cpp diff --git a/07_trees/c++/01_filesystem_dfs.cpp b/07_trees/c++/01_filesystem_dfs.cpp new file mode 100644 index 00000000..18a15c5b --- /dev/null +++ b/07_trees/c++/01_filesystem_dfs.cpp @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +void printnames(const std::filesystem::path &dir) { + std::vector entries; + for (const auto &entry : std::filesystem::directory_iterator(dir)) { + entries.push_back(entry); + } + + std::sort(entries.begin(), entries.end(), + [](const std::filesystem::directory_entry &a, + const std::filesystem::directory_entry &b) { + return a.path().filename() < b.path().filename(); + }); + + for (const auto &entry : entries) { + if (entry.is_regular_file()) { + std::cout << entry.path().filename().string() << std::endl; + } else if (entry.is_directory()) { + printnames(entry.path()); + } + } +} + +int main() { + printnames("pics"); + return 0; +}