2015-03-31 77 views
-3

要創建一個動態分配的陣列,我使用:創建STD的一個動態分配的數組::矢量

int *x = new int[100]; 

這產生100個int元件的陣列。

然而,如果我使用:

std::vector<int> *x = new vector<int>(100); 

這還創建100個int元件的陣列。但爲什麼它不創建一個100 vector<int>元素的數組?我該怎麼做呢?

+0

您已使用'()'而不是'[]'。我添加了一個顯示如何動態分配矢量數組的答案,但我不確定這是否是您真正想要的。 – bialpio 2015-03-31 01:02:48

回答

4

如果你想創建一個100個載體每個都包含100個整數,只要使用多個(嵌套)載體:

std::vector<std::vector<int> > x(100, std::vector<int>(100)); 
-1

您需要聲明變量爲向量的載體,而不是一個整數向量。

std::vector<vector<int>> *x = new vector<vector<int>>(100); 
2

爲了達到你想要什麼,你需要做的:

std::vector<int> *x = new vector<int>[100]; 

這將動態地分配100個向量的陣列,每個向量會缺省構造。