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:47
|
#4
|
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 ]
|
|
|
05.12.10, 19:51
|
#5
|
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
|
#6
|
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
|
#7
|
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
|
#8
|
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, 21:27
|
#9
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von Xalir
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.
|
Was find() macht, können wir ohne Hinweise über die Klasse nicht wissen.
Ob die Methode nun iterativ etwas sucht oder wie auch immer ist vollkommen egal, da das MapName.end() der Methode nicht übergeben wird!
Zitat:
Zitat von AshPrinter
@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.
|
Also, Du Pappnase!
Da Du Dich wohl auch nicht mit den C++-Konventionen auskennst, wie sollen andere dann richtig erraten was "MapName" sein soll. So sieht es aus als ob MapName eine statische Klasse ist.
Zitat:
Zitat von AshPrinter
find() und end() sind vordefinierte funktionen wie zB printf in C.
|
Sieht aber eher so aus als wären es Funktionen der statischen Klasse MapName.
Zitat:
Zitat von AshPrinter
diese gehören zur eigenschaft von einer map. Ich bin davon ausgegangen, dass jemand der mir antwortet auch weiß was eine Map ist.
|
Die if-Anweisung, die Du postet hat NICHTS mit der Iteration, der Suche etc. zu tun.
Es prüft lediglich, ob das die Methode find() das letzte Element der Map zurückgibt.
So... für kleine vorlaute Scheisser:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] -> "c++ map find"
Erster Treffer:
find():
"Searches the container for an element with x as key and returns an iterator to it if found, otherwise it returns an iterator to map::end (the element past the end of the container)."
Wird das Element mit dem Schlüssel x also nicht gefunden, dann wird der Iterator zu map::end zurückgegeben. Die Bedingung ist dann also wahr!
Scheint ja echt schwierig gewesen zu sein!
Naja, hauptsache n vorlautes Kind!
|
|
|
05.12.10, 21:31
|
#10
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
Zitat:
Zitat von AshPrinter
aber wieso wird es zu = end() wenn er den schlüssel nicht findet.
|
Die end-Funktion liefert einen Iterator, der genau Eins hinter das letzte Element zeigt.
Da die find-Methode auch nicht zaubern kann, googelt er halt alle Werte durch, bis der Zeiger am wirklich letzten Element steht, das nicht mehr zur eigentlichen Liste gehört.
Im C würde ein Null-Pointer zurückgegeben werden. Der Iterator hat den Vorteil, dass du mit Iterator-- wieder in der Liste bist.
Edit: Jetzt war ich zu langsam.
|
|
|
05.12.10, 22:14
|
#11
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
Hör mal PornoPenner,
ich will mich jetzt garnicht auf dein Niveau begeben und hab auch keine lust alle Aussagen von dir zu kommentieren, wozu ich durchaus in der Lage bin.
1. Nur damit du es weißt, dass hier anscheinend viele Kinder rumtreiben heißt nicht, dass jeder einer von diesen ist.
2. Ich bin ein erwachsener Mann der seine 21 schon längst hinter sich hat.
(Es ist nur eine Vermutung, aber bei dir sieht es nicht so aus).
3. Ich habe keine Ahnung wieso jemand Themen auf diese Weise Antwortet.
Bitte unterlasse es einfach demnächst auf meine Themen zu antworten, deine Antworten mögen zwar letztenendes hilfreich sein, aber sie kosten mich Zeit und Nerven. In dem ganzen Posts die du gemacht hast war nur ein Satz hilfreich. Der rest war nur:
*jammer jammer* ich habs hier nur mit Kindern zu tun *jammer jammer*
Ein Tipp: Nur weil es jeder macht, musst du nicht auch nochmal für google Werbung machen, jeder kennt die Suchmaschiene. Antworte oder lass es sein.
|
|
|
05.12.10, 22:32
|
#12
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Verträgst Du keine Kritik?
1. Du willst, dass man Dir hilft (= ZEIT FÜR DICH INVESTIERT), aber bist nicht in der Lage, Dein Problem ordentlich zu erläutern!
2. Man macht Dich darauf aufmerksam, dass für verständliche Hilfe, genaue Informationen benötigt werden.
Daraufhin, regst Du Dich auf, dass "selbst Du ja weißt was eine Map ist".
3.
Zitat:
Zitat von AshPrinter
Ein Tipp: Nur weil es jeder macht, musst du nicht auch nochmal für google Werbung machen, jeder kennt die Suchmaschiene. Antworte oder lass es sein. 
|
Aber anscheinend hast DU es NICHT geschafft google zu benutzen!
Fazit:
Du hast keinen Bock Dich selbst um Dein Problemchen zu kümmern, lässt lieber andere suchen.
Auf eine ordentliche Beschreibung hast Du auch keine Lust, wozu auch mehr als zwei Sätze schreiben... sollen sich doch diejenigen, die Dir helfen, selbst die Mühe machen rauszufinden was Du von ihnen willst!
Nagut... mit dieser Einstellung wünsche ich Dir viel Glück im Leben! Wunder Dich aber nicht, wenn Dich andere asozial anschauen oder Dich, so wie ich, für ein dummes, vorlautes Kind halten.
|
|
|
05.12.10, 22:43
|
#13
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
weißt du überhaupt was ein forum ist. du fragst und kriegst antworten.
du kannst jede deiner fragen durch suchen in büchern oder über google beantworten oder du fragst nach.
wie du siehst bin ich neu im forum, und habe gedacht das es professionellere leute gibt die auf einen blick mein problem erkennen.
ich frage immer wenn ich was poste ob ich das auch verstehen würde. und die frage war auch an leute mit ahnung gerichtet und nicht an noobs.
vorlaut und dumm? dass ich nicht lache, erst vorlaut werden und dann dumm rumstehen, das kann wohl nur jemand der sich penner nennt. penn weiter mein freund.
|
|
|
05.12.10, 23:12
|
#14
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von AshPrinter
habe gedacht das es professionellere leute gibt die auf einen blick mein problem erkennen.
|
Ja, etwa 267 Akademiker hat es benötigt, um Dein äußerst komplexes Problem ohne Erfolg zu analysieren.
Letztendlich konnte nur der erste Treffer bei www,google.de helfen, um diese kryptische Bedingung, die schon auf den ersten Blick, wie eine einfache Ungleichung wirkt, in Wirklichkeit aber die Weltsformel beinhaltet, verständlicher zu machen.
Zitat:
Zitat von AshPrinter
habe gedacht das es professionellere leute gibt die auf einen blick mein problem erkennen.
|
Sorry, die Psychologen und Psychiater sind Sonntags hier nicht anwesend.
|
|
|
05.12.10, 23:18
|
#15
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
Zitat:
Zitat von PornoPenner
Sorry, die Psychologen und Psychiater sind Sonntags hier nicht anwesend.
|
ach auch das noch, ich habe mich in eine Heilanstallt verirrt und unterhalte mich mit dem krankesten aller Patienten.
|
|
|
05.12.10, 23:23
|
#16
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von AshPrinter
ach auch das noch, ich habe mich in eine Heilanstallt verirrt und unterhalte mich mit dem krankesten aller Patienten.
|
Führst auch noch Selbstgespräche
Auch hier kann Dir google helfen: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
05.12.10, 23:23
|
#17
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Zitat:
Zitat von AshPrinter
vorlaut und dumm? dass ich nicht lache, erst vorlaut werden und dann dumm rumstehen, das kann wohl nur jemand der sich penner nennt. penn weiter mein freund.
|
Too much sand in the vagina?
Eine Frage in einem Forum stellen: +1 Punkt
Von PornoPenner eines auf den Deckel bekommen: +2 Punkte
Daraufhin einen kleinen Flamewar starten: 10 Punkte aus der Minuskiste
Die Ironie seines Namens nicht erkennen: Unbezahlbar!
|
|
|
05.12.10, 23:48
|
#18
|
Anfänger
Registriert seit: Dec 2010
Beiträge: 9
Bedankt: 0
|
WTF?
Ich brauche echt nichts mehr zu sagen, einfach loopback auf eure letzten beiden kommentare:
Code:
for ( AlterVonXalirUndPornoPenner= 16; AlterVonXalirUndPornoPenner>6; AlterVonXalirUndPornoPenner --)
{
cout << "Letzten beiden Kommentare";
}
|
|
|
06.12.10, 00:01
|
#19
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von AshPrinter
WTF?
Ich brauche echt nichts mehr zu sagen, einfach loopback auf eure letzten beiden kommentare:
Code:
for ( AlterVonXalirUndPornoPenner= 16; AlterVonXalirUndPornoPenner>6; AlterVonXalirUndPornoPenner --)
{
cout << "Letzten beiden Kommentare";
}
|
Die Initialisierung fehlt!
Der dickste Fehler ist ein Syntaxfehler!
Ebenso sind Konventionsverstösse vorhanden!
Du hast es geschafft mehr Fehler als Codezeilen zu fabrizieren.
|
|
|
06.12.10, 00:02
|
#20
|
Erfahrener Newbie
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
|
Hey ich bin stolz drauf, mit 7 Jahren schon programmieren zu können. In diesem Sinne: nänänänä!
|
|
|
06.12.10, 00:07
|
#21
|
Banned
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
|
Zitat:
Zitat von Xalir
Hey ich bin stolz drauf, mit 7 Jahren schon programmieren zu können. In diesem Sinne: nänänänä!
|
Er kann es mit 21 noch nich
|
|
|
06.12.10, 00:08
|
#22
|
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
|
#23
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 3
Bedankt: 2
|
sehr interessant zu lesen...
xD
|
|
|
09.12.10, 20:31
|
#24
|
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 16:55 Uhr.
().
|