我正在阅读一个 double
的标准输入,并将其保存到一个变量中。d
. 我希望能够在不指定的次数内完成这个任务。我使用下面的代码来创建一个指针到 d
.
double *pd = new double;
pd = &d;
然后我将这个指针推送到一个构造栈(list)类中。 但是每当我推送多个双数时,它就会改变所有的双数(指针是一样的)。
例如,推送2,得到一个数组[2];推送3,得到数组[3,3]而不是[3,2]。
*pd = d
而不是
pd = &d;
你所做的是。
double d
栈上变量pd
可变的pd
名单上这意味着你有地址列表到变量 d
(列表中的每一个对象都是指向 d
变量)。)
你为什么要使用指针呢?
std::vector<double> v;
double d;
while (std::cin >> d)
v.push_back(d);
或者像chris指出的那样。
std::copy(std::istream_iterator<double>(std::cin),
std::istream_iterator<double>(),
std::back_inserter(v));