要創建一個動態分配的陣列,我使用:創建STD的一個動態分配的數組::矢量
int *x = new int[100];
這產生100個int
元件的陣列。
然而,如果我使用:
std::vector<int> *x = new vector<int>(100);
這還創建100個int
元件的陣列。但爲什麼它不創建一個100 vector<int>
元素的數組?我該怎麼做呢?
要創建一個動態分配的陣列,我使用:創建STD的一個動態分配的數組::矢量
int *x = new int[100];
這產生100個int
元件的陣列。
然而,如果我使用:
std::vector<int> *x = new vector<int>(100);
這還創建100個int
元件的陣列。但爲什麼它不創建一個100 vector<int>
元素的數組?我該怎麼做呢?
如果你想創建一個100個載體每個都包含100個整數,只要使用多個(嵌套)載體:
std::vector<std::vector<int> > x(100, std::vector<int>(100));
您需要聲明變量爲向量的載體,而不是一個整數向量。
std::vector<vector<int>> *x = new vector<vector<int>>(100);
爲了達到你想要什麼,你需要做的:
std::vector<int> *x = new vector<int>[100];
這將動態地分配100個向量的陣列,每個向量會缺省構造。
您已使用'()'而不是'[]'。我添加了一個顯示如何動態分配矢量數組的答案,但我不確定這是否是您真正想要的。 – bialpio 2015-03-31 01:02:48