C++ error: expected primary-expression before 'int'

C++ error: expected primary-expression before 'int'

我正在尝试根据文件的输入创建符号 table。

截至目前,我已经有了逐行读取文件、分隔标记并打印出标记及其类型的代码。

现在,我必须找到一种方法将这些值(令牌和类型)存储到一个符号中 table。

我不熟悉 C++ 完全不熟悉。我最初尝试制作一个多维数组,但这是一个失败,因为我不知道文件将包含多少行或标记,而且我无法动态设置数组的大小。现在,我决定使用向量的向量。这就是我的代码行:

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

我不知道为什么它不起作用。我从 cplusplus.com 上的答案中完全复制了它。我也试过

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

取自另一个 SO 问题。我花了好几个小时寻找创建此 table 的最佳方法,结果 运行 遇到了很多问题。

我不断收到的错误(如问题中所述)是

error: expected primary-expression before 'int'

我该如何解决这个问题?

您需要弄清楚您希望如何调用您的对象。

如果你想调用你的对象vec,你应该这样写:

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

如果你想调用你的对象myVector,你应该这样写:

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

如果您的代码中出现了 "using namespace std;",remove it, and forget that you ever saw anything like that