用于初始化向量

时间:2016-12-06 14:31:37

标签: c++ class vector

我想在我的costructor中初始化一个bool向量的向量。

这是我的班级:

class MyClass{
public:
    MyClass(const OtherClass&g):
        g(g), count(g.node_count(), std::vector<bool>(16))){}


private:
    const OtherClass&g;
    std::vector<std::vector<bool>>count;
};

但是当我尝试初始化count时,我收到了这个错误:

error: no match for call to ‘(std::vector<std::vector<bool> >) (int)’

2 个答案:

答案 0 :(得分:3)

您想使用fill constructor。如果不使用c ++ 11,则需要为向量count(g.node_count(), std::vector<bool>(16, true))

中的元素指定默认值

答案 1 :(得分:0)

首先,我想问一下,如果你知道vector<bool>是一种特殊类型的向量,由于优化会有一些不同的实现,在某些情况下会导致一些不同的行为。

如果你想使用它,你必须传递给构造函数vector<bool>(16, true),用16个真值填充它。