2015-03-31 3 views
-3

Чтобы создать динамически распределённый массив, я использую:Создание динамически выделенный массив станд :: векторы

int *x = new int[100]; 

Это создает массив из 100 элементов int.

Однако, если я использую:

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

Это также создает массив из 100 элементов int. Но почему он не создает массив из 100 vector<int> элементов? И как мне это сделать?

+0

Вы использовали '()' вместо '[]'. Я добавил ответ, который показывает, как динамически выделять массив векторов, хотя я не уверен, действительно ли это то, что вы действительно хотите. – bialpio

ответ

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 векторов, каждый вектор будет по умолчанию возведенных.

Смежные вопросы