Überprüfen, ob ein Element unter einem bestimmten Schlüssel existiert
-
Hi Leute,
ich habe eine Map in der zu einem Index Projektionsdaten gespeichert werden.
Wie kann ich überprüfen, ob ein Index schon in die Map geschrieben wurde?
Über .find stürzt mir der Compiler irgendwie ab.
Gruß
Alex
-
Necrofighter schrieb:
Wie kann ich überprüfen, ob ein Index schon in die Map geschrieben wurde?
Mit find() und anderen.
Necrofighter schrieb:
Über .find stürzt mir der Compiler irgendwie ab.
Kann nicht sein, zeig mal Code!
Gruß
Paul
-
Necrofighter schrieb:
Über .find stürzt mir der Compiler irgendwie ab.
Dann hast du wohl in deinem Programm einen Fehler. find dient jedenfalls dem Auffinden von Daten in einer std::map.
Aber so schwammig wie du hier deinen Fehler formulierst kann man dir wohl kaum besser helfen (meine Glaskugel ist leider in Dauerreparatur).
-
Naja was überprüfe ich den über find?
da ist ja dann kein wert drin.
Mir stürzt der compiler ab, da ich dachte da stünde dann einfach null.
map<unsigned long, PtEntry>::iterator Indexfind1 = projectInTriangleMap.find(cell->getCellNode(i)->getIndex());was müsste ich nun mit dem Indexfind1 abfragen, um zu wissen dass deer nichts gefunden hat?
-
Schau mal hier hab ich ein Beispiel geschrieben. Eins wie man es übrigens auch zu Hauf über Google im Internet findet.
http://www.c-plusplus.net/forum/280550
Ich weiß leider nicht, wie man Beiträge direkt verlinken kann?
-
int main() { std::map<int, int> m; m[0] = 1; m[99] = 42; bool isInMap = m.find(99) != m.end(); return 0; };Welcher Compiler stürzt denn bei sowas ab?
-
Alles klar ich versuch das so.
Sry aber wollte keinen 500 Zeilen Code hier reinknallen, bin leider Anfänger.
Aber es ist ja eigentlich logisch, dass find das Teil durchsucht und man dann guckt obs am Ende angelangt ist.
Ich melde mich wenns geklappt hat

-
brotbernd schrieb:
int main() { std::map<int, int> m; m[0] = 1; m[99] = 42; bool isInMap = m.find(99) != m.end(); return 0; };Welcher Compiler stürzt denn bei sowas ab?
Ich habe gedacht, dass wenn es leer ist, da eine 0 drin steht und so eine Abfrage bringt natürlich alles zum abschmieren.
-
Necrofighter schrieb:
Ich habe gedacht, dass wenn es leer ist, da eine 0 drin steht und so eine Abfrage bringt natürlich alles zum abschmieren.
Man nimmt auch nicht einfach irgendwas an.
Lesen und verstehen: STL Containers - map - find
-
Trotzdem danke, dass ihr mir geholfen habt, denn nur vom lesen, wäre ich auf die Idee so nicht gekommen.
-
Ganz dämliche zweite frage:
wenn ich void function habe und danach nochmal 3 for schleifen kommen und dann 4 if abfragen und ich bei dem 2 else zurück zu einer bestimmten for schleife springen will, was muss ich dafür tun?
Ich weiß, es ist ne dumme Frage, heute ist irgendwie nicht mein Tag.
-
Mal doch mal nen Bild oder schreib bischen Code. Suchst du
break?void VoidFunktion() { for(;;) { for(;;) { if(Break()) break; } } }
-
erased
-
erased
-
breakverlässt die aktuelle Schleife,continuestartet einen neuen Durchgang.Was willst du genau erreichen? Kannst du dazu etwas Code posten?
-
danke euch...wie peinlich

-
Warum editierst du deine Beiträge? So kann nur die Fragestellung nicht mehr nachvollzogen werden.
-
Weil doppelpost so blöd aussieht.
Ich sende scheinbar schnelelr ab als ich denke