Generally (by default), the iostream standard stream objects - cin, cout, cerr, clog, and their wide character alternatives wcin, wcout, wcerr and wclog, are synchronized with C standard streams : stdin, stdout and stderr.
This synchronisation is an performance overhead for pure C++ modules.
With stdio synchronization turned off, iostream stream objects may operate independently of the standard C streams.
To control this behavior C++ provides below static method -
public static member function
bool sync_with_stdio ( bool sync = true );
---- Toggles on or off synchronization of the iostream standard streams with the standard C streams.
Notice that this is a static member function, therefore a call to this function using the member of any object (or of any related class) toggles on or off synchronization for all standard iostream objects.
This will increase program speed in linux not much difference in windows.
One can also consider untie cin with cout (after calling sync_with_stdio with false).
cin is usually tied with cout to provide a intuitive way to code cli like program, where the cin prompt is preceded with some text which suggest what to input.
cout << "Enter Name: ";
cin >> name;
(for further reading)