Comment beaucoup de différence de performances lors de l'utilisation chaîne vs char tableau?

J'ai le code suivant:

char fname[255] = {0}
snprintf(fname, 255, "%s_test_no.%d.txt", baseLocation, i);

vs

std::string fname = baseLocation + "_test_no." + std::to_string(i) + ".txt";

Celui qui fonctionne mieux? Le second impliquer temporaire de la création? Est-il meilleure façon de le faire?

Comment mesurez-vous la performance de quelque chose qui arrive une fois et prend le temps zéro?
Sauf si vous appelez ce code plusieurs millions de fois, vous aurez du mal à faire la différence. Mesure, oui, mais attention, pas tellement. Cela dit, il ya une bonne chance que la seconde va prendre plus de temps en raison de la création d'objets temporaires, mais un bon compilateur est susceptible d'optimiser beaucoup de cette suite.

OriginalL'auteur texasbruce | 2014-02-21