通常在编写构造函数时,我会尽可能在成员初始化列表中初始化尽可能多的类成员,包括诸如
原来,我不能用这种方式初始化向量数组。我做错了什么?或者这不可能吗?
当然,我仍然可以在构造函数的主体中使用“assign”来完成,但我更喜欢在成员初始化列表中完成。
std::vector
之类的容器。class MyClass
{
protected:
std::vector<int> myvector;
public:
MyClass() : myvector(500, -1) {}
}
因为技术原因,我现在需要将这个拆分成向量数组。
class MyClass
{
protected:
std::vector<int> myvector[3];
public:
MyClass() : myvector[0](500, -1), myvector[1](250, -1), myvector[2](250, -1) {}
}
原来,我不能用这种方式初始化向量数组。我做错了什么?或者这不可能吗?
当然,我仍然可以在构造函数的主体中使用“assign”来完成,但我更喜欢在成员初始化列表中完成。
Error C2536:cannot specify explicit initializer for arrays
。顺便说一下,这是MSVC2013。至于向量的内容,第一个应该用500个-1进行初始化,而最后两个应该分别用250个-1进行初始化。 - marcbfMyClass() : myvector({std::vector<int>(500, -1), std::vector<int>(250, -1), std::vector<int>(250, -1)}) {}
。 - JFMR