我有一个数值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;
或其他任何理智。
答案 0 :(得分:0)
一种可能性是为Vector
类提供int*
构造函数,然后从可以使用标准初始化列表初始化的int数组中初始化它。所以像这样:
int vecData[] = {1,2,3};
Vector vec(vecData, sizeof(vecData)/sizeof(vecData[0]));
这不是完美的解决方案,但可能比逐个启动元素更方便。