Здравствуйте, 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 умел ходить взад.