【问题标题】:C++ error: expected primary-expression before 'int'C++ 错误:“int”之前的预期主表达式
【发布时间】:2016-04-09 01:08:48
【问题描述】:

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

到目前为止,我有代码可以逐行读取文件,分离标记,并打印出标记及其类型。

现在,我必须想办法将这些值(令牌和类型)存储到符号表中。

我对 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'

我该如何解决这个问题?

【问题讨论】:

    标签: c++ arrays vector codeblocks symbol-table


    【解决方案1】:

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

    如果你想调用你的对象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

    【讨论】:

    • 谢谢!!这解决了我的问题。另外,我没有意识到我需要在顶部添加#include &lt;vector&gt;
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2023-04-11
    相关资源
    最近更新 更多