我正在讀取標準輸入中的double,並將其保存到變量d中。我希望能夠做到這一點不確定的時間。我使用下面的代碼爲d創建一個指針。如何在循環C++中創建唯一的指針?
double *pd = new double;
pd = &d;
然後我把這個指針推入構造的棧(列表)類。但是,每當我推動一個以上的double時,它都會改變它們(指針是相同的)。
Ex。推2並獲得一個數組[2]。按3並獲取數組[3,3]而不是[3,2]。
我正在讀取標準輸入中的double,並將其保存到變量d中。我希望能夠做到這一點不確定的時間。我使用下面的代碼爲d創建一個指針。如何在循環C++中創建唯一的指針?
double *pd = new double;
pd = &d;
然後我把這個指針推入構造的棧(列表)類。但是,每當我推動一個以上的double時,它都會改變它們(指針是相同的)。
Ex。推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));
您也可以使用'istream_iterator'初始化矢量以獲得相同的效果。 – chris
你爲什麼不只是把在雙打自己? – chris
您正在失去一個指向動態引用內存的指針。餿主意。 – Linuxios