2017-04-10 2 views
-1

Ich habe den folgenden Code:Deklarieren von C++ Karte Iterator: erwartete primärer Ausdruck vor 'int'

using namespace std; 

map<int, vector<string> > map; 
map<int, vector<string> >::iterator it; 

und ich diesen Fehler in der zweiten Zeile des Codes:

expected primary-expression before ‘int’. 
+2

Sie benötigen wahrscheinlich std :: vor Ihren Deklarationen und/oder Sie haben vergessen, die Map Include-Datei einzuschließen. –

+1

Aber ich benutze Namespace Std, also ist das notwendig? @AnonMail –

+0

Nein. Aber das hast du in deinem Code-Snippet nicht gezeigt! –

Antwort

3

Das Problem ist sicherlich, dass Ihre Variable der gleiche Name wie sein Typ (Karte) ist. In der zweiten Zeile wird der Typspezifizierer (<>) auf 'map' der Variablen angewendet, und nicht auf den Typ 'map', was keinen Sinn ergibt.

Umbenennen sollte das Problem lösen.

+1

Sie können dies als eine Antwort im Gegensatz zu einer Frage umschreiben, da es fast sicher die richtige Antwort ist. – miradulo

+0

Dies sollte ein Kommentar sein, oder versuchen Sie es neu zu gestalten. –

+0

(Sorry, wusste nicht, wie man den ersten Beitrag auf der mobilen Anwendung kommentieren) –

Verwandte Themen