2015-03-12 5 views
1

У меня есть переменная, называемая vector_size. Значение этой переменной вводится пользователем во время выполнения. У меня также есть класс MyClass.Инициализация векторов в C++?

Я хочу создать вектор MyClass. Я хочу, чтобы вектор имел элементы vector_size. Как мне это сделать?

Это то, что я пытался до сих пор:

vector <MyClass> myVector (vector_size) = MyClass(); 

Код выше не работает. Как создать вектор vector_size, и каждый элемент будет инициализирован?

Обратите внимание, что я не хочу просто «зарезервировать пространство» для элементов vector_size. Я хочу, чтобы вектор был заполнен элементами vector_size, и каждый элемент должен быть инициализирован конструктором.

По существу, я хочу сделать следующее в одной строке:

vector <MyClass> myVector; 
for (int counter = 0; counter < vector_size; counter++) { 
    myVector.pushBack (MyClass()); 
} 

ответ

7

путь является:

vector<MyClass> myVector(size, MyClass()); 

Это должно работать:

vector<MyClass> myVector(size); 

Первый вариант принимает объект, который будет использоваться для построения элементы вектора, второй будет инициализировать их с использованием конструктора по умолчанию, поэтому в этом случае оба варианта должны быть эквивалентными.

2

MyClass должен иметь конструктор по умолчанию или конструктор, который не принимает какой-либо параметр, чтобы делать то, что вы хотите.

Тогда вы можете позвонить:

vector <MyClass> myVector (vector_size); 
Смежные вопросы