0

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

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;

或任何理智的事情。

4

1 回答 1

0

一种可能性是给你的Vector类一个int*构造函数,然后从一个 int 数组初始化它,你可以用一个标准的初始化列表来初始化它。所以是这样的:

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

这不是完美的解决方案,但可能比一个一个地初始化元素更方便。

于 2013-06-03T16:57:13.217 回答