C++ Fehler: "unordered_map" nicht der name einer Art
Ich mache alles richtig, soweit ich das sagen kann, und ich bekommen die Fehlermeldung:
error: 'unordered_map' does not name a type
error: 'mymap' does not name a type
In meinem code habe ich:
#include <unordered_map>
using namespace std;
//global variable
unordered_map<string,int> mymap;
mymap.reserve(7000);
void main {
return;
}
Ich sehe nicht, was hier fehlt....
EDIT: wenn ich update meine Erklärung zu
std::tr1::unordered_map<string,int> mymap;
Ich in der Lage, zu beseitigen, die ersten Fehler, aber wenn ich versuche zu reservieren, bekomme ich noch die zweite Fehlermeldung.
EDIT2: Wie schon unten reserve muss in die main und ich brauche zu kompilieren mit dem flag
-std=c++0x
Gibt es allerdings noch erscheinen werden Fehler im Zusammenhang mit unordered_map, nämlich:
error: 'class std::tr1::unordered_map<std::basic_string<char>, int>' has no member named 'reserve'
InformationsquelleAutor der Frage user788171 | 2013-03-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kompilieren mit
g++ -std=c++11
(meine gcc-version istgcc 4.7.2
) UNDInformationsquelleAutor der Antwort gongzhitaao
Können Sie nicht
execute arbitrary expressions at global scope
so sollte maninnen main.
Dies gilt auch für andere STL-Container wie map und Vektor.
InformationsquelleAutor der Antwort taocp
InformationsquelleAutor der Antwort bismarc