2016-04-09 82 views
2

我想根據文件的輸入創建一個符號表。C++錯誤:'int'之前預期的初級表達式

截至目前,我的代碼一行一行地讀取文件,分離令牌,並打印出令牌及其類型。

現在,我必須找到一種方法將這些值(令牌和類型)存儲到符號表中。

我不熟悉C++ 全部。我最初試圖製作一個多維數組,但是這是一個半身像,因爲我不知道文件的行數或標記的數量,我無法動態設置數組的大小。現在,我決定使用矢量矢量。這是我的代碼行:

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

我不知道爲什麼它不起作用。我完全從cplusplus.com上的答案複製它。我也試過

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

這是從另一個SO問題採取的。我一直在尋找創造這張桌子的最佳方法,並且遇到了問題。

我不斷收到(如問題所述)的錯誤是

error: expected primary-expression before 'int'

請人幫忙!

回答

3

你需要弄清楚你希望如何調用對象。

如果你想打電話給你的對象vec,你應該寫:

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

如果你想打電話給你的對象myVector,你應該寫:

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

如果您有「使用命名空間標準;「出現在您的代碼中的任何地方,remove it, and forget that you ever saw anything like that

+0

謝謝!這解決了我的問題。另外,我還沒意識到我需要在頂部添加'#include '。 –

相關問題