by Anonymous » 13 Apr 2025, 01:31
Ich möchte wissen, ob das Überprüfen von Multiplikatoren in einem Verzeichnis mithilfe eines
std :: uncondeded_set von Dateiennamen mit
std :: fileSystem :: Directory_iterator schneller als die Verwendung von
std :: atresystem :: exist ist. In meinem Kontext gibt es einen Vorteil, dies zu tun?
Code: Select all
#include
#include
void download_file(const std::string& file_name){
// download file and save on directory
}
int main(){
std::unordered_set existing_files;
// adding files of directory to the set
for (const auto& entry : std::filesystem::directory_iterator()) {
existing_files.insert(entry.path().filename().string());
}
auto files_to_check = { "file1.txt", "file2.txt", ... };
for (const auto& file_name: files_to_check) {
if (existing_files.contains(file_name)) { // std::filesystem::exists(file_name)
continue;
}
download_file(file_name);
}
return 0;
}
[url=viewtopic.php?t=14917]Ich möchte[/url] wissen, ob das Überprüfen von Multiplikatoren in einem Verzeichnis mithilfe eines [b] std :: uncondeded_set von Dateiennamen [/b] mit [b] std :: fileSystem :: Directory_iterator [/b] schneller als die Verwendung von [b] std :: atresystem :: exist [/b] ist. In meinem Kontext gibt es einen Vorteil, dies zu tun?[code]#include
#include
void download_file(const std::string& file_name){
// download file and save on directory
}
int main(){
std::unordered_set existing_files;
// adding files of directory to the set
for (const auto& entry : std::filesystem::directory_iterator()) {
existing_files.insert(entry.path().filename().string());
}
auto files_to_check = { "file1.txt", "file2.txt", ... };
for (const auto& file_name: files_to_check) {
if (existing_files.contains(file_name)) { // std::filesystem::exists(file_name)
continue;
}
download_file(file_name);
}
return 0;
}
[/code]