Ich versuche, den Inhalt einer Karte effizient in eine Zeichenfolge zu konvertieren, um über Socket zu senden. Ich habe dies so weit ...Anhängen an Puffer in C++
char buffer[1024];
for (iter = my_mapy.begin(); iter != my_map.end();iter++)
{
sprintf(buffer, "%s|%ld|%d", buffer, iter->first, iter->second);
}
Während dies funktioniert, ich habe mich gefragt, ob es ineffizient ist. Google sucht nach dem effizientesten Weg, um int/long/doubles in string zu konvertieren, was in sprintf resultiert, weshalb ich es verwende. Aber ich bin besorgt, dass der Inhalt des Puffers immer wieder kopiert wird, während ich nur bis zum Ende anhängen möchte. Ist das richtig, und wenn ja, gibt es einen besseren Weg, dies zu tun? Leistung und Geschwindigkeit haben Priorität 1.
Danke!
Verwenden von '% s', um einen Puffer zu sich selbst zu kopieren? Das ist * hässlich * und ich bin überrascht, dass es funktioniert. –