Re[6]: iota_view::iterator не двунаправленный
От: sergii.p  
Дата: 20.03.26 10:39
Оценка:
Здравствуйте, rg45, Вы писали:

R>Тебе же, имея значения 15, нужно найти значение 14? А имея значение 20, значение 19?


функция testFps чисто для отладки. На самом деле это что-то
auto testFps = [](const int fps) {
    const auto config = createConfig(fps);
    const auto errCode = sendRequest(config);
    if(errCode == WrongFps) return false;
    else if(errCode == NoError) return true;
    else return repeatRequest(config);
};


то есть число 15 сидит где-то в камере. Но она его не отдаёт. Потому что там сидят такие же раздолбаи-программисты и могут выдавать чушь в ответах. Камера отдаёт только теоретически возможный fps (н-р 30). А нужно найти реальный, который камера способна принимать. Короче, классическая игра "угадай число". Вот в учебниках какие-то мудрённые алгоритмы пишут. А надо так

const auto askNum = [](int num) { std::cout << "Загаданное число меньше " << num << "? (l|g)"; char answer; std::cin >> answer; return answer == 'l'; };
const auto sequence = std::iota_view(1, 100);
const auto littleBitMagic = 42;
auto it = std::ranges::lower_bound(sequence, littleBitMagic, [&](int num, int) { return askNum(num); } });
std::cout << "Ответ: " << *it;


но это если бы дедушка была бабушкой iota_view умел ходить взад.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.