2

在我的文件main.h的顶部,我有:

#include <vector>

class Blah
{
  public:
    Blah(){}
    ~Blah(){}
  protected:
    vector<int> someVector;
  public:
    //methods
};

当我尝试编译时,向量声明行给出了错误:

错误 C2143:语法错误:缺少“;” 在'<'之前

错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

错误 C2238:';' 前面的意外标记

我无法弄清楚是什么原因造成的。有人看到我做错了什么吗?

4

4 回答 4

10

该类vectorstd命名空间的一部分。您需要将您的声明std::vector<int>替换为。

于 2013-04-04T01:37:09.537 回答
5

它在std命名空间中:

std::vector<int> someVector;

于 2013-04-04T01:37:12.440 回答
3

vectorstd 命名空间的一部分,因此您需要添加std::到您的声明中:

std::vector<int> someVector;

由于该建议是在另一个答案中提出的,我也想劝阻使用,using namespace std因为它被认为是不好的做法

于 2013-04-04T01:37:34.743 回答
0

而不是使用,

std::vector someVector;

总是尝试使用,

使用命名空间标准;

因为它会帮助你不要一次又一次地输入“std::”,这不是一个好的做法。

于 2021-09-08T15:18:00.677 回答