使用类似初始化列表的东西初始化类似数组的类?

时间:2013-06-03 14:56:27

标签: arrays list initialization initializer

我有一个数值Vector类,它是float数组的包装器,我厌倦了逐个元素的初始化:

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

不使用C ++ 11(提升确定,但不是更可取),我可以同时使用哪些操作符和技巧来执行此操作,类似于支持封闭的初始化列表,如:< / p>

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

或其他任何理智

1 个答案:

答案 0 :(得分:0)

一种可能性是为Vector类提供int*构造函数,然后从可以使用标准初始化列表初始化的int数组中初始化它。所以像这样:

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

这不是完美的解决方案,但可能比逐个启动元素更方便。