[英]Do I need to manually delete or manage this unique_ptr
我是否需要以任何方式管理此數組,還是由unique_ptr進行管理? 我已經讀到,如果arry被分配了一個新值,那么它將不再被管理。 我對此並不陌生。
int main() {
int i = 0;
int maxSpaceSize = 10;
unique_ptr<int[]> arry (new int[maxSpaceSize]());
for (i = 0; i < maxSpaceSize; i++) {
arry[i] = i;
cout << arry[i];
cout << endl;
}
return 0;
}
我的目標是通過自動垃圾收集來制作和理解動態數組。 在某些時候,我會要求用戶定義數組的大小,並將其分配給maxSpaceSize。
感謝您提供有用的意見。
我是否需要以任何方式管理此數組,還是由unique_ptr進行管理?
std::unique_ptr
將注意。 原始數組delete [] pointee;
有一個專門的功能,可以調用delete [] pointee;
我已經讀到,如果arry被分配了一個新值,那么它將不再被管理 。
這是錯誤的信息(強調我的意思)。
std::unique_ptr
的賦值運算符重載將刪除舊的Pointe,並進一步照顧新的Pointe。
所以每當你寫類似
maxSpaceSize = 50;
arry = unique_ptr<int[]>(new int[maxSpaceSize]);
該行為將適用。
觀看現場演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.