The pre-defined streams cin, cout, and cerr are normally implemented as stdiobuf objects that point to respectively stdin, stdout, and stderr. This is convenient, but it does cost some extra overhead.
If you set things up to use the implementation of stdio provided with this library, then cin, cout, and cerr will be set up to use stdiobuf objects, since you get their benefits for free. See C input and output.