Найти последний файл в каталоге. С++

Подскажите более оптимальный вариант поиска последнего файла в каталоге. Файлы в каталоге имеют расширение .dat и пронумерованы от 1. То есть такой вид:

1.dat 
2.dat
3.dat

Вот, что у меня есть:

const file_system::path work_dir = file_system::current_path();
string tmp;

    for (const auto& entry : file_system::directory_iterator(work_dir))
    {
        tmp = entry.path().filename().string();
    }

Ну и в итоге tmp будет содержать идентификатор последнего файла, но здесь линейный поиск, а возможно это сделать быстрее? С учетом того, что файлы могут редактироваться.


Ответы (1 шт):

Автор решения: IAMLERNCSHARP

С учетом всех замечаний, что были выражены в комментах, пришел к варианту, что самый оптимальный способ для решения моей задачи(найти последнее число, чтобы использовать его для создания следующего файла):

auto dir_iter = fs::directory_iterator(id_file_cat_name);

int file_count = count_if(begin(dir_iter), end(dir_iter), [](auto& entry) {return entry.is_regular_file(); });
→ Ссылка