Les deux appels ont des significations différentes qui n'ont rien à voir avec la performance; le fait qu'il accélère le temps d'exécution n'est (ou pourrait être ) qu'un effet secondaire. Vous devez comprendre ce que chacun d'eux fait et ne pas les inclure aveuglément dans chaque programme car ils ressemblent à une optimisation.
ios_base::sync_with_stdio(false);
Cela désactive la synchronisation entre les flux standard C et C ++. Par défaut, tous les flux standard sont synchronisés, ce qui vous permet en pratique de mélanger les E / S de style C et C ++ et d'obtenir des résultats raisonnables et attendus. Si vous désactivez la synchronisation, les flux C ++ sont autorisés à avoir leurs propres tampons indépendants, ce qui fait du mélange d'E / S de style C et C ++ une aventure.
Gardez également à l'esprit que les flux C ++ synchronisés sont thread-safe (la sortie de différents threads peut s'entrelacer, mais vous n'obtenez aucune course de données).
cin.tie(NULL);
Cette délie cin
decout
. Les flux liés garantissent qu'un flux est automatiquement vidé avant chaque opération d'E / S sur l'autre flux.
Par défaut, cin
est lié à cout
pour assurer une interaction utilisateur sensible. Par exemple:
std::cout << "Enter name:";
std::cin >> name;
Si cin
et cout
sont liés, vous pouvez vous attendre à ce que la sortie soit vidée (c'est-à-dire visible sur la console) avant que le programme ne demande l'entrée de l'utilisateur. Si vous détachez les flux, le programme peut bloquer l'attente que l'utilisateur entre son nom, mais le message "Entrer le nom" n'est pas encore visible (car il cout
est mis en mémoire tampon par défaut, la sortie est purgée / affichée sur la console uniquement à la demande ou lorsque le la mémoire tampon est pleine).
Donc, si vous détachez cin
de cout
, vous devez vous assurer de vider cout
manuellement chaque fois que vous souhaitez afficher quelque chose avant d'attendre une entrée cin
.
En conclusion, sachez ce que chacun d'eux fait, comprenez les conséquences, puis décidez si vous voulez vraiment ou avez besoin de l' effet secondaire possible de l'amélioration de la vitesse.