Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 3 Профайлер / Дополнительные варианты по оптимизации

.docx
Скачиваний:
7
Добавлен:
29.03.2016
Размер:
25.8 Кб
Скачать

На входной поток поступает много неотрицательных целых чисел по одному на строке. Программа должна вывести максимальное из входных чисел.

  1. Получить 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