iterator problem (maps)
-
Hallo,
Ich habe folgendes Problem dieser Code lässt sich nicht kompelieren:
for(map<std::string,int>::iterator iter = intmap.begin(); iter != intmap.end(); iter++) { std::string test1, test2; int test; test1 = iter->first(); //Zeile 116 test = iter->second(); //Zeile 117 cout << test1 << ":" << test2 << endl; }Ich bekomme aber immer die Fehlermeldung:
116 D:\Programmierung\cvs_working\optionen\ffoptionen.cpp no match for call to(const std::string) ()' und auch noch die Fehlermeldung: 117 D:\\Programmierung\\cvs\_working\\optionen\\ffoptionen.cpp(&iter)->std::_Rb_tree_iterator<_Tp>::operator-> [with _Tp = std::pair<const std::string, int>]()->std::pair<const std::string, int>::second' cannot be used as a functionWoran liegt das?
-
an ()
-
oder ausführlicher: first und second sind Membervariablen von std::pair<>, da brauchst du keine Funktionsklammern dranzuhängen:
std::string test1=iter->first; int test2=iter->second; cout<<test1<<":"<<test2<<endl;PS: dein Programm dürfte auch so nicht das richtige machen - du deklarierst zwar die 'string test2', belegst sie abewr nirgends mit einem vernünftigen Wert.
-
test2 ist eine dbg variabel die hat im quelltext normalerweise eine lebensdauer von einer minute. (Ich hab an dem Codeschnipsel schon ein bisschen rumgebastelt)