Некоторые ребята, возможно, скажут вам о том, что функции не могут быть быстрее друг друга, но их реализация может. Это верно, я думаю, я бы согласился.
Вы вряд ли когда-либо заметите разницу, отличную от тестов. Причина того, что потоки c ++ обычно имеют тенденцию быть медленнее , заключается в том, что они гораздо более гибки. Гибкость чаще всего достигается за счет времени или роста кода.
В этом случае потоки C ++ основаны на потоковых буферах. Сами по себе потоки - это просто оболочка, которая поддерживает флаги форматирования и ошибок и вызывает правильные i/o
грани стандартной библиотеки c ++ (например, num_put для печати чисел), которые печатают значения, хорошо отформатированные, в основной поток-буфер, связанный с потоком c ++.
Все это механизмы - аспекты и буферы, реализованные виртуальными функциями. Хотя отметки действительно нет, эти функции должны быть реализованы так, чтобы они были медленнее, чем подвески c stdio , что делает их несколько медленнее, чем при обычном использовании функций c stdio (я отметил, что некоторое время назад с gcc / libstdc ++ и фактически заметил замедление - но которое вы вряд ли заметите при повседневном использовании).