[英]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.