Задать вопрос
yxtiblin
@yxtiblin

Как эффективно подсчитать кол-во байт для выделения буфера на чтение?

Например на вход идет n целых чисел в строке разделенных пробелами. Гарантируется что 1 <= n <= 100 000.
Также гарантируется что каждое 1 <= ni <= 10^9, а значит число ni входит в диапазон int32 на каждое число которого нужно 4 байта. На пробел в соответствии с таблицей ascii требуется 2 байта.

Как эффективно подсчитать какое максимальное кол-во байт может занять ввод в худшем случае?
Верно ли будет подсчитывать с помощью моей формулы: (4 * 100000) + (2 * 100000) = 600000 байт = 585.94 кб ?
Если нет то подскажите верную и объясните почему.
Я хочу эффективно выделять размер буфера для ввода на golang
  • Вопрос задан
  • 115 просмотров
Подписаться 2 Простой 13 комментариев
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Не нужно вычислять объём памяти для буфера. Просто используй интерфейс io.Reader для потоковой обработки.
scanner := bufio.NewScanner(os.Stdin)
scanner.Text()вернёт токен с числом в строке.

https://pkg.go.dev/bufio#Scanner.Text
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы