Лаба 3 Профайлер / Дополнительные варианты по оптимизации
.docxНа входной поток поступает много неотрицательных целых чисел по одному на строке. Программа должна вывести максимальное из входных чисел.
-
Получить max значение с помощью старого доброго scanf:
int max_scanf()
{
int x;
int max = -1;
while (scanf("%d", &x) == 1)
{
max = std::max(x, max);
}
return max;
}
Проделать тоже самое при помощи iostreams:
int max_iostream(std::istream & f)
{
int x;
int max = -1;
while(f >> x)
max = std::max(x, max);
return max;
}
И с помощью появившиеся в C++11 функции std::stoi/std::stol/std::stoll.
Будем читать по одной строке с помощью getline, а затем парсить её с помощью stol.
Код будет выглядеть так:
int max_stoi(std::istream & f)
{
int max = -1;
std::string line;
while (std::getline(f, line))
{
int x = std::stoi(line);
max = std::max(x, max);
}
return max;
}
На практике должно получится следующее:
std::cin>scanf>std::stoi