Troverete iostream più efficiente perché non avete bisogno di specificare gli specificatori di formato come %s,%d,%f e così via per prendere l'input o per emettere una variabile.
Si fa semplicemente
cin>>a;
cout<
Ci sono alcune potenziali insidie nelle prestazioni con cin/cout :
Per default,
cin/cout perdono tempo a sincronizzarsi con i buffer stdio della libreria C, così che potete liberamente mischiare chiamate a
scanf/printf con operazioni su cin/cout
. Disattiva questo con
std::ios_base::sync_with_stdio
(
false
);
.
Molti tutorial C++ ti dicono di scrivere
cout
<<
endl
invece di
cout << 'n' Ma endl è effettivamente più lento perché forza un flush, che solitamente non è necessario. (Avreste bisogno del flush se state scrivendo, per esempio, una barra di progresso interattiva, ma non quando scrivete un milione di righe di dati). Scrivete
'n'
invece di
endl
.C'era un bug in versioni molto vecchie di GCC (pre-2004) che rallentava significativamente iostreams C++. Non usate compilatori antichi.