2013-02-08 60 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