Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
05.12.10, 18:18
|
#1
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
c++ map
Hallo Leute,
ich weiß zwar was folgender Befehl bewirkt, aber verstehe nicht ganz wie er funktioniert.
Wäre nett, wenn mir Jemand eine kurze Erklärung gibt.
Danke!
Code:
if(MapName.find(Variable)!=MapName.end())
|
|
|
05.12.10, 19:03
|
#2
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Welchen Befehl meinst Du denn?
Was eine if-Anweisung macht, weißt Du oder willst Du eben da wissen?
|
|
|
05.12.10, 19:19
|
#3
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
Nein! Natürlich will ich den gesamten Ausdruck erklärt bekommen.
Der Befehl bewirkt ja, dass die Map bis zum ende nach dem Schlüsselwert in der Variablen durchsucht wird und wenn es gefunden wurde wird die if-Anweisung durchgeführt, sonst nicht, aber wieso reicht es != ....end() zu schreiben damit er weiß das er bis zum Ende der Map suchen soll. find() müsste ja dann irgendwann = end() sein?
|
|
|
05.12.10, 19:51
|
#4
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Mal übersetzt lautet die Zeile:
Suche die Variable in MapName(MapName.Find) solange das Ende von MapName nicht erreicht wurde(!=MapName.end). Gebe Wahr zurück,wenn Suche erfolgreich,ansonsten Falsch.
if wartet auf einen Ausdruck,den es auf wahr oder falsch auswerten kann. MapName.find gibt aber solange nichts zurück, bis es die Variable gefunden hat oder das Ende von MapName erreicht wurde.
|
|
|
05.12.10, 20:00
|
#5
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von Xalir
Suche die Variable in MapName(MapName.Find) solange das Ende von MapName nicht erreicht wurde(!=MapName.end). Gebe Wahr zurück,wenn Suche erfolgreich,ansonsten Falsch.
|
Wie kommst Du auf "solange suchen bis das Ende nicht erreicht wurde"?
MapName.find() gibt vielleicht ein einfaches Objekt zurück und es wird geprüft, ob dieses Objekt das Endstück ist.
|
|
|
05.12.10, 20:04
|
#6
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Deswegen:
Zitat:
...Der Befehl bewirkt ja, dass die Map bis zum ende nach dem Schlüsselwert in der Variablen durchsucht wird und wenn es gefunden wurde wird die if-Anweisung durchgeführt, sonst nicht...
|
Ich gehe davon aus das find eine iterative Funktion ist. Ansonsten könnte es natürlich auch sein das find true zurückgibt, wenn die Variable nicht die Variable ist, die am Ende liegt.
|
|
|
05.12.10, 20:19
|
#7
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
@PornoPenner: bevor du Beiträge abgibst solltest du vlt. selber wissen worum es hier geht. Ich weiß nicht nur sehr gut was eine if anweisung macht und was eine klasse ist, nein, ich weiß auch im gegensatzt zu dir was eine map ist.
find() und end() sind vordefinierte funktionen wie zB printf in C.
diese gehören zur eigenschaft von einer map. Ich bin davon ausgegangen, dass jemand der mir antwortet auch weiß was eine Map ist.
@xalir: danke für die antwort, allerdings ist es genau das problem wo ich nicht weiß wie der das weiß dass er am ende angelangt ist wenn er den schlüssel nicht gefunden hat. find() sucht die variable in der map, sobald es gefunden wurde wird es mit end() verglichen. bis dahin ok. aber wieso wird es zu = end() wenn er den schlüssel nicht findet.
naja, so wichtig ist das wahrscheinlich auch nicht, aber das ist auch nur ne interessensfrage gewesen. anwenden tue ich es ja schon im programm.
|
|
|
05.12.10, 19:47
|
#8
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von AshPrinter
Nein! Natürlich will ich den gesamten Ausdruck erklärt bekommen.
Der Befehl bewirkt ja, dass die Map bis zum ende nach dem Schlüsselwert in der Variablen durchsucht wird und wenn es gefunden wurde wird die if-Anweisung durchgeführt, sonst nicht, aber wieso reicht es != ....end() zu schreiben damit er weiß das er bis zum Ende der Map suchen soll. find() müsste ja dann irgendwann = end() sein?
|
Hmm, Du willst Dich mit einer Programmiersprache beschäftigen, weisst aber nicht was eine if-Anweisung macht?
Ein if-Befehl selbst bewirkt absolut gar nichts, der prüft nur und verzweigt.
Das Internet, google, Wikipedia etc. sollten Dir hoffentlich nicht unbekannt sein (irgendwie hast Du es ja geschafft hier zu posten)... also, schau mal hier:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
In den Klammern steht die Bedingung, und "!=" bedeutet lediglich "ungleich".
Also, prüft die if-Anweisung:
Ist "MapName.find(Variable)" ungleich "MapName.end()" ?
Was MapName.find() und MapName.end() machen kann ich nicht wissen, da Du die Klasse nicht auflistest.
(Da könnte genau so gut "if(HansWurst.krabbelWutz()!=ZappelDings.plupp ())" stehen!)
Da müsste man schon hellsehen können, um zu wissen, ob die Methoden nun Objekte oder primitive Datentypen zurückgeben.
Könntest ja mal mehr Infos beifügen, wenn man Dir schon helfen soll. Raten bringt ja nicht viel!
Was eine Klasse ist wirst Du vermutlich auch nicht wissen:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
06.12.10, 00:08
|
#9
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
das programm soll euer leben darstellen und nicht eure kenntnisse.
und ihr habt recht  euer leben ist wirklich voller fehler.
|
|
|
08.12.10, 21:31
|
#10
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 3
Bedankt: 2
|
sehr interessant zu lesen...
xD
|
|
|
09.12.10, 20:31
|
#11
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
Zitat:
Zitat von BS_Cerberus
sehr interessant zu lesen...
xD
|
Meine Erklärung?
^^
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.
().
|