std :: vector中没有名为iterator_category的类型

时间:2017-03-02 12:39:59

标签: c++ vector

此代码出错:

vector<vector<bool> > revealed(vector<bool>(10, false), vector<bool>(10,false));

我正在尝试定义一个2D布尔数组,默认情况下所有元素都为false。

错误是

.\stl_iterator_base_types.h|165|error: no type named 'iterator_category' in 'class std::vector<bool>'|

错误是指 stl_iterator_base_types.h的第165行

162 template<typename _Iterator>
163 struct iterator_traits
164 {
165     typedef typename _Iterator::iterator_category iterator_category;
166     typedef typename _Iterator::value_type        value_type;
167     typedef typename _Iterator::difference_type   difference_type;
168     typedef typename _Iterator::pointer           pointer;
169     typedef typename _Iterator::reference         reference;
170 };

顺便说一句,我使用Code :: Blocks(使用MinGW)作为我的IDE

1 个答案:

答案 0 :(得分:3)

您可以按如下方式初始化这样的矢量

android

原因是您尝试用于java的构造函数重载是

sample codes to change screensaver from an Android App

所以你可以看到第一个参数是计数,第二个参数是值。通过这个概念,你想要外部向量

std::vector<std::vector<bool>> revealed(10, std::vector<bool>(10, false));

表示第二个参数的方式是

std::vector

外部向量的第一个参数只是vector(size_type count, const T& value); ,因为您希望它包含10个具有10个vector(10, "vectors_of_length_10_wlth_all_false_values") ^ 值的向量。