Ich kann mir nicht erklären anzeigen
So, in meiner cpp-Datei, die ich versuche zu erklären, eine Karte, wie folgt:
map<string, vector<myStruct>> myMap;
Oben meine Datei, die ich geschrieben habe using namespace std
und ich habe auch #include <string>
.
Aber ich bin immer dieser komische Fehler:
Fehler: ISO-C++ verbietet Deklaration von "Karte" mit Nein Typ
Ich weiß nicht, wie es zu lösen ist. Wenn ich Schreibe #include <map>
dass nur bewirkt, dass der compiler freak out.
- Siehe die "im Kopf" Hinweis an der Oberseite dieses Dokument, dann das. Und wie erwähnt mehrere Antworten, nicht
using namespace std;
in Ihrem header-Dateien. Es ist einfach eine schlechte Idee.
Du musst angemeldet sein, um einen Kommentar abzugeben.
haben Sie
#include <map>
? rest sieht gültigallerdings müssen Sie möglicherweise, um ein Leerzeichen hinzuzufügen, wenn Ihr C++ - standard ist nicht C++11:
sogar besser nicht verwenden namespace std:
Müssen Sie
map
header-Datei.Inzwischen in den Fall, Sie sind nicht mit C++11, benötigen Sie einen Raum:
Sollten Sie auch
<map>
.std::map
eingeführt wird, durch diese header.Darüber hinaus
using namespace std
ist als eine schlechte Praxis. Sie sollten entweder eineusing
- Anweisung oder verwenden Sie den Präfix der Namen mitstd::
zu bezeichnen, dass eine vollständig qualifizierte Bezeichner:Beachten Sie, dass das fehlen einer using-Anweisung 😉