Maps in Datei abspeichern
-
Zweistein97 schrieb:
Wie kann ich denn auf Basis von Strings iterieren?
So wie bei jedem anderen Typ? Was soll an Strings speziell sein?
Der Iterator gibt dereferenziert ein
std::pairmit Key und Value zurück. Die kannt du ganz normal auslesen...
-
also in etwa so:
typedef std::map<std::string,int>::const_iterator MCI; for(MCI itr = adressen_map.begin(); itr != adressen_map.end(); itr++) { output << itr->first << '\t' << itr->second << '\n'; }
-
Hyde++ schrieb:
also in etwa so:
typedef std::string::const_iterator SCI; for(SCI itr = adressen_map.begin(); itr != adressen_map.end(); itr++) { output << itr->first << '\t' << itr->second << '\n'; }
Du meinst wohl eher einen map-Iterator.
-
ohhh, ja klar! peinlich!
-
Ausserdem könntest du dir unnötige Kopien sparen, indem du
++itrstattitr++schreibst. Manche Leute speichern sich sogar denend()-Iterator, wenn er konstant bleibt
(Wird beides kaum etwas ausmachen, aber ist gut zu wissen in Situationen, wo der Iterationsoverhead ins Gewicht fällt)
-
Hyde++ schrieb:
also in etwa so:
typedef std::map<std::string,int>::const_iterator MCI; for(MCI itr = adressen_map.begin(); itr != adressen_map.end(); itr++) { output << itr->first << '\t' << itr->second << '\n'; }gut! Danke für den Beispielquelltext

Nur arbeitest du mit zeilenumbrüchen innerhalt einer Datei.
Als eher unerfahrener Programmierer würde ich gern wissen, wie man etwas ausliest.
habt ihr hier eine Ahnung?
-
Zweistein97 schrieb:
Als eher unerfahrener Programmierer würde ich gern wissen, wie man etwas ausliest.
habt ihr hier eine Ahnung?mit getline() bzw. Stream-Operator die beiden Werte lesen und dann per insert() in die map<> einfügen.
-
Vielleicht könnte dir dieser Thread helfen, in dem ich ein ähnliches Problem hatte:
-
CStoll schrieb:
Zweistein97 schrieb:
Als eher unerfahrener Programmierer würde ich gern wissen, wie man etwas ausliest.
habt ihr hier eine Ahnung?mit getline() bzw. Stream-Operator die beiden Werte lesen und dann per insert() in die map<> einfügen.
Es fände es echt gut, wenn du mir ein Codebeispiel geben würdest. Beim Googlen bin ich darauf gestoßen (Um ehrlich zu sein, war das das einzige womit ich etwas anfangen konnte):
http://www.willemer.de/informatik/cpp/iostream.htm
Die Erklärung auf dieser Seite ist aber zu kurz für mich, damit ich es verstehe...

-
Ach nun komm. Die ersten Treffer bei jeder einigermaßen gut gestellten Google-Anfrage dürften diese sein:
http://www.cplusplus.com/reference/string/getline/
http://www.cplusplus.com/reference/iostream/istream/operator>>/Außerdem sollte das in so ziemlich jedem Lehrbuch zu C++ schätzungsweise auf Seite 2 stehen.
Und was willst du noch mehr? Der Link sind 4 sehr große Bildschirmseiten. Du erwartest doch nicht, dass hier jemand noch mehr Erklärung als das liefert?
-
zu beachten ist, das diese Seiten auf Englisch sind, und ich es im Englischen als 13 Jähriger noch nicht so weit bin....