Vector speichern
-
Kein Problem, ist nur für mich.
-
grimmreefer schrieb:
Kein Problem, ist nur für mich.
Schau dir mal ostream::write an.
-
und istream::read
-
out schrieb:
Möglich schon. Aber keine gute Idee. Auf einem anderen System funktioniert es schon nicht mehr...
Funktioniert wahrscheinlich schon auf dem selben System nicht mehr, wenn man nix um die Interna der Implementierung weiss.
Ist eine doofe Idee. Warum sollte man das machen?
-
grimmreefer schrieb:
Also nicht den Inhalt sondern den ganzen Vector.
Erzähl mal, was für dich da der Unterschied ist und wozu du das brauchst.
-
Warum willst du ihn den ganz speichern?
Den Inhalt abzuspeichern ist ganz einfach:std::ostream_iterator<DeinTyp> osit(file, " "); file << vector.size() << " "; std::copy(vector.begin(), vector.end(), osit);Und laden ist nur ein bisschen schwieriger.
std::istream_iterator<DeinTyp> isit(file); std::istream_iterator<DeinTyp> eof; std::size_t size; file >> size; vector.resize(size); std::copy(isit, eof, vector.begin());
-
Athar schrieb:
grimmreefer schrieb:
Also nicht den Inhalt sondern den ganzen Vector.
Erzähl mal, was für dich da der Unterschied ist und wozu du das brauchst.
Der Vector ist ein vector<struct> mit 1 Int und 1 String.
Ich möchte den vector laden können und weitere Elemente einfügen können.
-
Siehe meinen Beitrag.
Die strcut muss nur einen operator<< haben.Edit: Und zum Speichern natürlich auch operator>>.
-
grimmreefer schrieb:
Der Vector ist ein vector<struct> mit 1 Int und 1 String.
Ich möchte den vector laden können und weitere Elemente einfügen können.
Na also. Dann möchtest du doch den Inhalt speichern und laden.
Wenn du operator>>/<< für deine Klasse überlädst, kannst du das so machen, wie Nathan gezeigt hat.
-
grimmreefer schrieb:
Der Vector ist ein vector<struct> mit 1 Int und 1 String.
Du baust aber keine
std::mapnach, um strings mit Integern zu identifizieren, oder?#include <iostream> #include <map> #include <string> int main(){ using namespace std; // 4 Nachrichten durch einen int identifiziert: map<int, string> messages { { 3, "!\n" }, { 0, "Hallo" }, { 2, "Welt" }, { 1, ", " }, }; for(int i=0; i<4; ++i) std::cout << messages[i]; }
-
Furble Wurble schrieb:
grimmreefer schrieb:
Der Vector ist ein vector<struct> mit 1 Int und 1 String.
Du baust aber keine
std::mapnach, um strings mit Integern zu identifizieren, oder?#include <iostream> #include <map> #include <string> int main(){ using namespace std; // 4 Nachrichten durch einen int identifiziert: map<int, string> messages { { 3, "!\n" }, { 0, "Hallo" }, { 2, "Welt" }, { 1, ", " }, }; for(int i=0; i<4; ++i) std::cout << messages[i]; }Das kannte ich noch gar nicht.
Also nein
Auf jeden Fall mal danke für die ganzen Antworten. Mal schauen was ich zusammen bringe.