-3
我有一個函數返回一個unique_ptr到數組元素,我注意到原始變量沒有得到更新。C++ unique_ptr數組元素
爲什麼這項工作(一[5] == 6後):
int a[10];
for (size_t i = 0; i < 10; i++)
{
a[i] = i;
}
int* ap = &a[5];
*ap += 1;
但
int a[10];
for (size_t i = 0; i < 10; i++)
{
a[i] = i;
}
unique_ptr<int> ap = make_unique<int>(a[5]);
*ap += 1;
不更新原有的數組元素? (a [5] == 5):
請閱讀[make_unique](http://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique)的內容。它不會創建一個指向現有元素的指針,它會創建一個指向新元素的指針,並使用您傳入的任何元素進行初始化。 – nwp