string in vector<unsigned char> kopieren
-
Hallo,
ich habe einen
std::vector<unsigned char>in den schon einige Elemente eingefügt wurden. Jetzt habe ich einen String, dessen Elemente ich auch alle nacheinander dem vector anfügen möchte. Die Größe des Strings kann je nach Fall unterschiedlich groß sein. Wie kann ich das am elegantesten machen?
-
std::vector<unsigned char> foo; std::string bar; // ... foo.insert(foo.end(), bar.begin(), bar.end());
-
vec.insert( std::end(vec), std::begin(str), std::end(str) ); // bzw. in C++98: vec.insert( vec.end(), str.begin(), str.end() );Siehe
vector::insert
Ich nehme mal an, dass du das Problem eventueller Underflows berücksichtigt hast.Edit: Damn you, SeppJ!
-
Danke, jetzt ist ein anderes Problem aufgetaucht.
Beispiel:int i = 1; std::vector<unsigned char> a = { i + 0x01, 2, 3 };error C2398: Element '1': Die Konvertierung von 'int' zu 'unsigned char' erfordert eine einschränkende KonvertierungWeiß jemand wie man das lösen kann? Casten bringt nichts.
-
Das sollte durch einen Cast behebbar sein. Du hast dabei schon den gesamten Ausdruck gecastet (also i + 0x01), oder?
-
Compiler neu gestartet - jetzt geht es

-
kjljoil schrieb:
Compiler neu gestartet - jetzt geht es

Du meinst sicher die IDE
