Рандомайзер папки с картинками
Мне нужно брать рандомную картинку из папки. Картинка может быть названа как угодно и картинок может быть сколько угодно, известно только расширение - 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());