[英]How to create unique pointers in a loop C++?
我正在从标准输入中读取double
并将其保存到变量d
。 我希望能够以未指定的次数执行此操作。 我使用以下代码创建一个指向d
的指针。
double *pd = new double;
pd = &d;
然后我将此指针推入构造的堆栈(列表)类。 但是每当我推动超过一倍时,它都会改变所有这些(指针是相同的)。
前任。 按 2 并得到一个数组 [2]。 推 3 并得到数组 [3, 3] 而不是 [3, 2]。
你为什么要使用指针?
std::vector<double> v;
double d;
while (std::cin >> d)
v.push_back(d);
或者正如克里斯指出的那样:
std::copy(std::istream_iterator<double>(std::cin),
std::istream_iterator<double>(),
std::back_inserter(v));
*pd = d
代替
pd = &d;
你要做的是:
double d
变量pd
变量中pd
on list 保存这意味着您有变量d
的地址列表(列表中的每个对象都是指向d
变量的指针)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.