Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 嵌套向量的动态分配_C++ - Fatal编程技术网

C++ 嵌套向量的动态分配

C++ 嵌套向量的动态分配,c++,C++,我做了这样的事情: Grid(int row, int col):num_of_row_(row), num_of_col_(col) { grid_ = new vector<vector<bool> > (row, col); } Grid(int row,int col):行数(row),列数(col){ 网格=新向量(行、列); } 它动态地分配嵌套向量。这是正确的吗?我的意思是使用这种语法: new vector<vector<ty

我做了这样的事情:

Grid(int row, int col):num_of_row_(row), num_of_col_(col) {
     grid_ = new vector<vector<bool> > (row, col);  
}
Grid(int row,int col):行数(row),列数(col){
网格=新向量(行、列);
}
它动态地分配嵌套向量。这是正确的吗?我的意思是使用这种语法:

new vector<vector<type> > (outersize, innersize)
new vector<vector<type> > (outersize, vector<type>(innersize, elementValue));
新向量(outersize,innersize)
其中**outersize和innersize都是“int”变量**

更新:
我实际上使用了这个代码,而且它是有效的。我只想找出原因。

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

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

注意,在某些实现中,向量可能不是您认为的那样。我不认为这是正确的,但我已经有一段时间没有这样做了,所以我会让其他人在这方面比我的答案更了解…你试过编译它吗?vector是一个动态容器。也就是说,它会根据你给它喂食的食物来调整自己的大小。在这种情况下,“新”是不必要的。你真的在寻找
新的bool[outer][inner]?@RefugnicEternium:不正确<代码>标准::向量v;v[1]=2是未定义的行为,而不是自动调整大小。问题是,为什么是“新的”?你真的需要它吗?嗨,我试过了。但在这种情况下,我需要innersize和outersize都是变量,这很好,它们不需要是常量。可以说,这是向量相对于内置数组的最大优势。谢谢,但我尝试了变量。它给了我一个错误:“行”不能出现在常量中-expression@AlanShore我不认为应该这样做:当我使用变量时,这里有一个简单的例子。但我仍然想知道为什么我的代码实际上可以工作。你能解释一下吗?