2013-06-03 1 views
0

У меня есть числовой вектор класс, который является оболочкой в ​​массиве поплавка, и я болен элемент-по-элемента инициализации:Инициализировать массивный класс с чем-то похожим на список инициализаторов?

Vector vec(3); 
vec(1) = 1; 
vec(2) = 2; 
vec(3) = 3; 

без использования C++ 11 (Boost хорошо, но не является предпочтительным), какие операторы и приемы я могу играть, чтобы сделать это все сразу, что-то, напоминающее скобой огороженный список инициализатора как:

Vector vec(3) = {1,2,3}; 
// --OR-- 
Vector vec(3) << 1 << 2 << 3; 

или что-нибудь в здравом уме действительно.

ответ

0

Одна из возможностей заключается в том, чтобы дать вашему Vector классу конструктор int*, а затем инициализировать его из массива int, который вы можете инициализировать стандартным списком инитализаторов. Так что-то вроде этого:

int vecData[] = {1,2,3}; 
Vector vec(vecData, sizeof(vecData)/sizeof(vecData[0])); 

Это не идеальное решение, но, вероятно, более удобно, чем initalising элементы один за другим.

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

  • Нет связанных вопросов^_^