boost :: arraychar nach std :: string kopieren

7

Ich versuche, boost::array<char> zu std::string zu cvopy.

%Vor%

was nicht funktioniert. Also habe ich es ein bisschen verändert.

%Vor%

Sekunde funktioniert auch nicht.

    
Dipro Sen 14.06.2012, 19:49
quelle

2 Antworten

5

Sie können back_insert_iterator verwenden. Wenn Sie es zuweisen, wird push_back function des zugrunde liegenden Containers aufgerufen, sodass Sie sich keine Gedanken über die manuelle Zuweisung von Speicherplatz machen müssen.

%Vor%     
jrok 14.06.2012, 19:59
quelle
15

Das Problem hier ist, dass copy davon ausgeht, dass bereits Platz für die von Ihnen geschriebenen Daten vorhanden ist. es schafft keinen neuen Raum für Sie. Folglich verursachen beide oben genannten Codeteile undefiniertes Verhalten, da Sie Zeichen an einen Ort kopieren werden, an dem zuvor kein Platz reserviert wurde.

Am besten verwenden Sie dazu den string -Konstruktor:

%Vor%

oder

%Vor%

Dadurch wird die Zeichenfolge als eine Kopie der im Array gespeicherten Daten initialisiert.

Hoffe, das hilft!

    
templatetypedef 14.06.2012 19:50
quelle

Tags und Links