Ich bin sehr neu in der Verwendung von STL-Containern in C++.C++ - Iterieren durch eine Karte von 3 Elementen
Ich habe eine Karte von 3 Elementen -
map<pair<string, string>, int> wordpairs;
Aber wenn ich versuche, durch es so iterieren (2 Strings als Paar als Schlüssel fungieren, und ein int, der als der Wert.):
for (map<pair<string, string>, int> iterator i = wordpairs.begin(); i != wordpairs.end(); i++) {
cout << i->first << " " << i->second << "\n";
}
der Compiler wirft Fehler:
error: expected ‘;’ before ‘i’
for (map<pair<string, string>, int> iterator i = wordpairs.begin(); i != wordpairs.
^
error: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]
a7a.cpp:46:50: note: (if you use ‘-fpermissive’ G++ will accept your code)
error: cannot convert ‘std::map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int>::iterator {aka std::_Rb_tree_iterator<std::pair<const std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int> >}’ to ‘int’ in assignment
for (map<pair<string, string>, int> iterator i = wordpairs.begin(); i != wordpairs.
^
error: no match for ‘operator!=’ (operand types are ‘int’ and ‘std::map<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int>::iterator {aka std::_Rb_tree_iterator<std::pair<const std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int> >}’)
for (map<pair<string, string>, int> iterator i = wordpairs.begin(); i != wordpairs.
^
error: expected ‘)’ before ‘;’ token
pair<string, string>, int> iterator i = wordpairs.begin(); i != wordpairs.end(); i++) {
^
error: expected ‘;’ before ‘)’ token
pair<string, string>, int> iterator i = wordpairs.begin(); i != wordpairs.end(); i++) {
nicht sicher, was ich falsch hier zu tun - dies sollte eine einfache Lösung sein.
sollte es nicht Karte, int> :: iterator i sein ?? map , int> iterator i macht keinen Sinn ... Sie deklarieren zwei Variablen auf einmal (iterator und i) –
solti
Verwenden von Leerzeichen, wo Sie Doppelpunkte benötigen. – Peter
Danke Jungs! Das hat das Problem gelöst! – RockAndaHardPlace