Variablen erzeugen ;)
-
Hi Leute,
ich habe da eine Frage dich mich schon einige Zeit beschäftigt.
Ich habe eine Textdatei "Name.txt". Dort stehen beliebig viele Namen drin. z.B.
Hassan
Jochen
ThomasMein Programm soll die datei öffnen, was kein Problem ist. Die Namen auslesen, was auch kein Problem darstellt und - und hier fängt mein Problem an - >>> aus allen Namen Variablen machen. Sagen wir mal vom Typ String. So das ich am Ende "String Hassan, Jochen, Thomas;" in meinem Programm Habe und benutzen kann.
Würde mich freuen wenn mir jemand weiterhelfen könnte.
-
Hallo
du brauchst grundsätzlich einen Container.
Ich würde dir std::mapstd::string,std::string empfehlen.bis bald
akari
-
man liest die in einen std::vector oder std::list ein und durchläuft diese dann. was anderes ergibt keinen sinn.
-
In einen Vektor einlesen ist kein Problem. Dann hab ich meinen Vektor:
MeinVektor:
-----------
hassan
jochen
thomasNur wie lege ich jetzt in hassan Daten ab? Geht doch garnicht. Oder doch?
danke für eure Antworten
-
SerVas schrieb:
Nur wie lege ich jetzt in hassan Daten ab? Geht doch garnicht. Oder doch?
nur mit tricks
guckst du: http://www.sgi.com/tech/stl/Map.html
-
also ein PRO in sachen Problem beschreibung bist du nicht gerade
was willst du für "daten" ablegen? nur nachname? dann
map< string, string >
wenn mehr z.b. adresse usw dann
map< string, meine_struct >
du kannst auch nur ein struct erzeugen
struct
{
name
klasse
datum}
dann
vector<meine_struct> vec
und dann beim öffnen einlesen nur in name einlesen. später kannst du dann noch klasse und datum "ablegen"
aber nimm die map
-
akari schrieb:
du brauchst grundsätzlich einen Container.
Ich würde dir std::mapstd::string,std::string empfehlen.Ohne weitere Kommentare.
Ok, doch nen Kommentar, du brauchst einen Hash. Map ist einer.
Hilfe gibts bei google: "how to hash c++"
-
Neee, eigentlich braucht er nur nen assoziativen Container. Hashen kann man, wenn man will auch (Die SGI-Extensions zur STL, die viele Compiler und STLPort mitbringen, haben ne hash_map), aber zwingend notwendig ist es nicht.
std::map wäre hier allerdings die offensichtliche Wahl (und nein, std::map hasht nicht), zumal ich annehme, dass hier keine allzu großen Datenmengen verwaltet werden sollen.