Ein Substring in einer Schleife erzeugen und ihn gleichzeitig mit einem Key von einem Map vergleichen
-
Hallo,
Ich hab schon wieder ein Problem.
Und zwar:
Ich lese aus einer Datei einen langen String, und schneidet ihn in einer Schleife folgenderweise ab:for (size_t start=0; start<line.length(); start+=count) { subString = line.substr(start,count); }Ich möchte gleichzeitig prüfen, ob dieser Substring sich in einem Map befindet. Wenn Ja, möchte ich den entsprechenden Value aus dem Map rausholen.
Und so iteriere ich im Map:map<string,string>::iterator I = data.begin(); while(I != data.end()) { ++I; }Ich weiss aber nicht wie ich beide Codes miteinander schreiben, damit es klappt.
CStoll, du weisst bestimmt schon was ich will. Du hast mir bis hier dabei geholfen.
Danke voraus.
Gruß
-
Versuch's doch mal mit map::find():
for (size_t start=0; start<line.length(); start+=count) { subString = line.substr(start,count); map<string,string>::iterator pos = data.find(subString); if(pos!=data.end())//gefunden { cout<<"Wert:"<<pos->second<<endl; } else { cout<<"nicht gefunden\n"; } }PS: Nein, ich weiß nicht, was du willst - bei so vielen unregs in der Gegend fällt es schwer, den Überblick zu bewahren

-
Hallo
map<string,string>::iterator I = data.begin(); while(I != data.end()) { if( I->second == subString) { // mache was } ++I; }map::find sucht aber nur nach dem Key, nicht nach dem Value. Man könnte natürlich auch find_if nehmen.
-
Danke,
ich werde es probieren.
Gruß
-
JJJJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
Es hat geklappt.
Danke Leute.