2013-02-08 62 views
1

的动态分配我不喜欢的东西:嵌套矢量

Grid(int row, int col):num_of_row_(row), num_of_col_(col) { 
    grid_ = new vector<vector<bool> > (row, col); 
} 

其中动态地分配嵌套矢量。它是否正确?我的意思是使用此语法:

new vector<vector<type> > (outersize, innersize) 

其中** outersize,innersize都是 “INT” 变量**

更新: 我实际使用此代码,它的工作原理。我只想找出原因。

+0

当心矢量可能不是你认为它是对一些实现。我不认为这是正确的,但我有一段时间没有这样做,所以我会让别人知道更多的知识,比我明确地回答... – 2013-02-08 18:54:39

+0

你试过编译它吗? – aschepler 2013-02-08 18:55:33

+0

矢量是一个动态容器。这意味着,它会根据你喂食它的大小自行调整大小。在这种情况下,“新”是不必要的。你真的在寻找'新的bool [outer] [inner];'? – 2013-02-08 18:55:52

回答

2

传递给构造函数的第二个参数是要重复的向量的元素outersize次。你应该使用这个语法:

new vector<vector<type> > (outersize, vector<type>(innersize, elementValue)); 

例如,为了使bool一个50x25网格初始设置为true,使用:

vector<vector<bool> > *grid = new vector<vector<bool> >(50, vector<bool>(25, true)); 
+0

嗨,我试过了。但在这种情况下,我需要大小写,两者都是变量。 – JASON 2013-02-08 19:04:45

+0

@AlanShore这很好,他们不需要是常量。可以说,这是载体比内置阵列最大的优势。 – dasblinkenlight 2013-02-08 19:08:29

+0

谢谢,但我试过变量。它给了我这个错误:'行'不能出现在一个常量表达 – JASON 2013-02-08 19:10:53