2D Array
-
wenn du schon im c++ forum postest, wie wärs mit ner
std::map<string, int>
??
-
Wenn ich
"key0" "wert0"
richtig interpretiere, dann wird eine std::map<std::string, std::string> genau das sein, was der OP sucht
Beispiel (nicht getestet)
std::map<std::string, std::string>daten; daten[std::string("key0")] = std::string("wert0"); daten[std::string("key1")] = std::string("wert1"); // und vice versa: std::cout << daten[std::string("key0")] << std::endl;
Wenn dich die *std::*s verwirren, dann such nach namespaces ;).
Siehe dazu: http://www.cpp-tutor.de/cpp/le18/le18_01.htm#map
Grüße...
Heiko
EDIT: Ursprünglichen Beitrag auf das Kommentar von CStoll überarbeitet/korrigiert.
-
bwbg schrieb:
Wenn ich
"key0" "wert0"
richtig interpretiere, dann wird eine std::map< pair<std::string, std::string> > genau das sein, was der OP sucht
Fast - die map<> kümmert sich selber darum, daß Schlüssel und Werte in ein pair<> zusammengefasst werden, also heißt's korrekt "std::mapstd::string,std::string"
-
-
-
map and Co., also Luxusfunktionen habe ich leider nicht (nachinstallieren etc. geht nicht). Ich bin dann wohl bei C++ falsch, Sorry.
ps: soll ich nochmal bei C-Forum das gleiche posten oder regelt das der Moderator?
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
shuriko schrieb:
map and Co., also Luxusfunktionen habe ich leider nicht (nachinstallieren etc. geht nicht). Ich bin dann wohl bei C++ falsch, Sorry.
Dann schreib doch mal dazu, wie dein Array definiert ist - vermutlich findet sich dort schon ein Fehler.
ps: soll ich nochmal bei C-Forum das gleiche posten oder regelt das der Moderator?
wie du siehst, wird das recht schnell geregelt
-
Simon2 schrieb:
- warum mal strcpy(), strlen() aber sonst die strn__-varianten ?
Darf man nicht?
Simon2 schrieb:
- die strn___-Varianten sind dafür da, die maximal zu schreibende Länge (also üblicherweise die Länge des ZIELbuffers) anzugeben und nicht die des Quellbuffers)
Ok, das wusste ich nicht. Ich dachte immer, dass ich im ZIEL genug Platz habe und speichere nur göße der Quelle. Dabei gehe davon aus, dass ich mir vorher Gedanken über der Zilegröße mache.
Simon2 schrieb:
- ist pcID wirklich ein 3D-Array ? Schließlich willst Du doch nicht nur einzelne Zeichen ablegen, oder ?
char pcID[][2][256];
-
shuriko schrieb:
Ok, das wusste ich nicht. Ich dachte immer, dass ich im ZIEL genug Platz habe und speichere nur göße der Quelle. Dabei gehe davon aus, dass ich mir vorher Gedanken über der Zilegröße mache.
Ok, dass war leichtsinnig...
Ich habe mal zu wenig oder zu viel...
-
shuriko schrieb:
Simon2 schrieb:
- warum mal strcpy(), strlen() aber sonst die strn__-varianten ?
Darf man nicht?...
Klar - darf man alles !
Aber die strn__-Varianten bieten ein Mehr an Sicherheit, das man ruhig konsequent nutzen sollte (so wie im Auto nicht alle angeschnallt sein MÜSSEN, aber SOLLTEN).shuriko schrieb:
...
Ok, das wusste ich nicht. Ich dachte immer, dass ich im ZIEL genug Platz habe ... Dabei gehe davon aus, dass ich mir vorher Gedanken über der Zilegröße mache. ...Wenn Du DAS sicher weißt, brauchst Du überhaupt keine strn___-Funktionen.
Für mich als Codelesenden bedeutet das:
- "Sehe ich n" => "Programmierer hat berücksichtigt, dass die Ziellänge zu klein sein könnte"
- "Sehe ich KEIN n" => "Programmierer hat sichergestellt, dass die Ziellänge IMMER reicht"... da irritiert so ein "Mischmasch" schon.
shuriko schrieb:
Simon2 schrieb:
- ist pcID wirklich ein 3D-Array ? Schließlich willst Du doch nicht nur einzelne Zeichen ablegen, oder ?
char pcID[][2][256];
da brauchst Du gar nicht so mit den Augen zu rollen, denn das hat Du erst NACH meinem Post geschrieben ... und sowohl im Titel als auch im Eröffnungspost von einem 2D-Array geschrieben. :p
Gruß,
Simon2.
-
Simon2 schrieb:
da brauchst Du gar nicht so mit den Augen zu rollen, denn das hat Du erst NACH meinem Post geschrieben ...
Neeee... das war schon um 10:33:37 12.10.2007
Aber egal, danke.