无法创建具有指定大小的向量

时间:2012-12-10 12:45:14

标签: c++

我正在尝试创建一个特定大小为255(最大)的向量。 它对我不起作用,就像我在互联网上的例子中看到的那样......

我正在使用Microsoft Visual C ++ 2012 ...

我有当前的代码:

#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>

using namespace std;

const int MAX = 255;

class test
{
vector <string> Name(MAX);
};

int main()
{
system("PAUSE");
}

它给了我2个错误:

Error 1 error C2061: syntax error : identifier 'MAX'

2 IntelliSense: variable "MAX" is not a type name

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

这不是类声明的有效语法。尝试:

class test
{
   vector <string> Name;
   test() : Name(MAX) {}
};

您可以在创建变量时编写vector <string> Name(MAX);(在您的情况下,您要声明成员)。例如:

int main()
{
   vector <string> Name(MAX);
}

完全有效。

答案 1 :(得分:0)

您不能像这样在类声明中初始化数据成员。使用类的构造函数中的成员初始化列表初始化vector<string> Name

test::test
:Name(MAX)
{
  //
}

你的主要就是这样。

test t1 ;

它会自动调用构造函数,并且会创建t1的所有字段,包括vector<string> Name

答案 2 :(得分:0)

您不能在类声明中将参数传递给std::vector构造函数。你应该把它放在你的类的构造函数中,就像这样,它通过初始化列表使用它:

class test
{
    std::vector<std::string> Name;

    public:

    test():
        Name(MAX)
    {
    }
};