von char[512] nach ::std::vector<char> kopieren
-
dumm nur,dass zeiger häufig als iteratoren benutzt werden
-
camper schrieb:
betrug schrieb:
nur sind zeiger ja keine iteratoren...
nein?
nicht dass ich wüsste
-
Ein Iterator ist ja nur ein Konzept und Zeiger erfüllen dies ziemlich gut
In Struppis Worten:
Bjarne Stroustrup schrieb:
ein Iterator ist eine Abstraktion...alles was sich wie ein Iterator verhält ist ein Iterator
-
kleiner tipp: insert bei vector/string benutzen.
-
betrug schrieb:
@xyz:
wäre auch nicht schlecht. aber leider gibts da '\0', das in binären dateien vorkommen kann. und das macht sich ganz schlecht in strings...doch, geht!
Die std::string-Klasse verarbeitet ja keine C-Strings, sondern ganz allgemein Zeichenketten, da duerfen auch Null-Bytes rein!
Natuerlich kommt dann bei str.c_str() ein Pointer auf den String-Puffer zurueck, der auch die Null-Bytes mit einschliesst. Wenn man's aber weiss, dass welche drin sind, kein Problem!
-
ja, ok, zeiger sind eine untermenge von iteratoren. aber es funktioniert trotzdem nicht
.
@insert:
void insert(iterator pos, InputIterator f, InputIterator l)
wenn das geht, dann würde auch das mit copy gehen.
na egal, ich kopier jetzt zeichenweise. so. hah.
(
)
(kriegt der chef hier eigentlich geld, wenn ich das buch über amazon kaufe???
)
-
Brauchst du überhaupt C(-Strings)?
Ansonsten könntest du evtl. direkt mit istream_iterator & back_insert_iterator was basteln...
-
warum liest du nicht einfach direkt in einen vector<char> ?
std::vector< char > content( filesize ); i.read( &content[0], filesize );
und gut
-
camper schrieb:
warum liest du nicht einfach direkt in einen vector<char> ?
weil ich die daten (später) gepackt vorliegen hab, und die mit zlib entpacken will. und die zuständige funktion gibt nen char-array zurück.
vielleicht wär's sogar besser, die daten in einem array zu lassen. aber dann kommt das ganze rumgefuchtel mit new[] und delete[]...
-
camper schrieb:
warum liest du nicht einfach direkt in einen vector<char> ?
std::vector< char > content( filesize ); i.read( &content[0], filesize );
und gut
aber das ist gut.