Рандомайзер папки с картинками

Мне нужно брать рандомную картинку из папки. Картинка может быть названа как угодно и картинок может быть сколько угодно, известно только расширение - jpg и саму папку.
Вот код:

auto foo(void) {
    std::vector < std::string > vecImg;
    std::string path = "./testimg/day";
    for (const auto& entry : std::filesystem::directory_iterator(path)) {
        vecImg.push_back(entry.path());
    }
    return rand() % vecImg.size();
}

Но в push_back положить нельзя, какой тип можно указать и вообще правильно ли я делаю?
Нужно возвращать путь к картинке, например, ./testimg/day/jdsai.jpg


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

Автор решения: Павел Ериков

Вы пишите: "Нужно возвращать путь к картинке".

А возвращаете rand() % vecImg.size(), то есть int.

Я думаю стоит написать так:

return vecImg[rand() % vecImg.size()];

Так же, вам нужно из path получить string, чтобы запихнуть путь в vector<string>.

Для этого используйте метод .string() у path

vecImg.push_back(entry.path().string());
→ Ссылка