2016-07-07 13 views
2

Vektor Was ist der beste Weg, dies zu tun:Wie man teilweise einen char-Array hinzufügen <char>

vector<char> content; 
char MESSAGE[1024]; 
SUCCESSFUL = recv(sock_CONNECTION, MESSAGE, 1024, NULL); 
for (int i = 0; i < SUCCESSFUL; i++) 
    content.push_back(MESSAGE[i]); 

Ich habe gerade so etwas wie:

content.get_allocator = MESSAGE; 

Es keine Fehler hat , aber ich weiß nicht, wie man MESSAGE von 0 bis SUCCESSFUL schneidet.

+1

Hinweis: 'content.get_allocator = MESSAGE;' sollte nicht kompiliert werden, zusätzlich gibt die ['get_allocator'] -Funktion den Standardwert zurück Zuweiser mit dem 2. Template-Parameter der 'vector' Vorlage verbunden (in Ihrem Fall ist es' allocator '). – txtechhelp

+0

Wenn Sie wirklich unnötiges Kopieren vermeiden möchten, sollten Sie in der Lage sein, einen 'Inhalt'-Vektor zu verwenden, der z. Nullen (so viele wie nötig, um alle Nachrichten zu empfangen) und füttern einfach einen Zeiger mit Offset in 'Inhalt' direkt zu recv. Offset ist der Ort des nächsten unbenutzten Zeichens. –

Antwort

4
content.insert(content.end(), MESSAGE, MESSAGE+SUCCESSFUL); 

Natürlich vergessen Sie nicht, wenn recv() fehlgeschlagen ist, zu überprüfen und zurück -1, bevor Sie dies tun.

Verwandte Themen