Два вопроса для рассмотрения.
getchar_unlocked
устарела в Windows, поскольку является небезопасной версией getchar()
.
Если коэффициент скорости не слишком необходим, старайтесь избегать getchar_unlocked
.
Теперь, что касается скорости.
getchar_unlocked > getchar
потому что в getchar_unlocked
нет проверки блокировки входного потока, что делает его небезопасным.
getchar > scanf
потому что getchar
читает один символ ввода, который является типом char, тогда как scanf может читать большинство примитивных типов, доступных в c.
scanf > cin (>> operator)
потому что проверьте эту ссылку
Итак, наконец
getchar_unlocked > getchar > scanf > cin