2016-04-09 10 views
2

Ich versuche, eine Symboltabelle basierend auf der Eingabe aus einer Datei zu erstellen.C++ - Fehler: erwarteter primärer Ausdruck vor 'int'

Ab sofort habe ich den Code, um die Datei Zeile für Zeile zu lesen, die Token zu trennen und das Token und seinen Typ auszudrucken.

Jetzt muss ich eine Möglichkeit finden, diese Werte (Token und Typ) in einer Symboltabelle zu speichern.

Ich bin nicht vertraut mit C++ AT ALL. Ich habe ursprünglich versucht, ein mehrdimensionales Array zu erstellen, aber das war eine Pleite, weil ich nicht weiß, wie viele Zeilen oder Token eine Datei haben wird und dass ich die Größe der Arrays nicht dynamisch festlegen konnte. Jetzt habe ich beschlossen, einen Vektor von Vektoren zu verwenden. So sieht meine Codezeile aus:

vector< vector<int> > vec(4, vector<int>(4)) myVector; 

Ich habe keine Ahnung, warum es nicht funktioniert. Ich habe es genau aus einer Antwort auf cplusplus.com kopiert. Ich habe auch versucht

std::vector<std::vector<int> > row; 

, die aus einer anderen SO Frage entnommen wurde. Ich habe stundenlang nach dem besten Weg gesucht, diesen Tisch zu erstellen, und bin auf nichts als auf Probleme gestoßen.

Der Fehler Ich erhalte immer (wie in der Frage angegeben) ist

error: expected primary-expression before 'int'

Bitte jemand helfen!

Antwort

3

Sie müssen herausfinden, wie Ihr Objekt aufgerufen werden soll.

Wenn Sie Ihr Objekt vec anrufen möchten, sollten Sie schreiben:

std::vector< std::vector<int> > vec(4, std::vector<int>(4)); 

Wenn Sie Ihr Objekt myVector anrufen möchten, sollten Sie schreiben:

std::vector< std::vector<int> > myvector(4, std::vector<int>(4)); 

Und wenn Sie „verwenden Namensraum std; " erscheint überall in Ihrem Code, remove it, and forget that you ever saw anything like that.

+0

Vielen Dank !! Das hat mein Problem gelöst. Außerdem hatte ich nicht bemerkt, dass ich "#include " an der Spitze hinzufügen musste. –

Verwandte Themen